How come a whole pointer is required for class pointer? Can't it be a small offset into a class table? Do many Java applications often require millions of classes?
Also there is already compression for that pointer, making it 32 instead of 64 bits.
But who cares? 99% of the time you just need class identity, not values from it.
> 99% of the time you just need class identity, not values from it.
So no need to deference the class pointer, or the table index.
Well also you didn't actually need to decompress the pointer first - compressed pointers are unique as well of course.
[1] in HotSpot they are instances of InstanceKlass: https://github.com/openjdk/jdk/blob/master/src/hotspot/share...