On Wed, 4 Nov 2020 08:56:54 GMT, Kim Barrett <kbarr...@openjdk.org> wrote:
>> Coleen Phillimore has updated the pull request incrementally with one >> additional commit since the last revision: >> >> Code review comments from Kim and Albert. > > src/hotspot/share/prims/jvmtiTagMapTable.hpp line 36: > >> 34: class JvmtiTagMapEntryClosure; >> 35: >> 36: class JvmtiTagMapEntry : public HashtableEntry<WeakHandle, >> mtServiceability> { > > By using utilities/hashtable this buys into having to use HashtableEntry, > which includes the _hash member, even though that value is trivially computed > from the key (since we're using address-based hashing here). This costs an > additional 8 bytes (_LP64) per entry (a 25% increase) compared to the old > JvmtiTagHashmapEntry. (I think it doesn't currently make a difference on > !_LP64 because of poorly chosen layout in the old code, but fixing that would > make the difference 33%). > > It seems like it should not have been hard to replace the oop _object member > in the old code with a WeakHandle while otherwise maintaining the Entry > interface, allowing much of the rest of the code to remain the same or > similar and not incurring this additional space cost. Yes, there is 64/32 bits extra per hashtable entry with the standard hashtable implementation. It wouldn't have been hard to replace the oop object, but using shared code was a goal of this change. ------------- PR: https://git.openjdk.java.net/jdk/pull/967