Compressed-OOP's on JVM‏

serkan özal serkanozal86 at hotmail.com
Sat Jun 28 12:21:15 UTC 2014


Hi all,
As you know, sometimes, although compressed-oops are used, if java heap size < 4Gb and it can be moved into low virtual address space (below 4Gb) then compressed oops can be used without encoding/decoding. (https://wikis.oracle.com/display/HotSpotInternals/CompressedOops)
In 64 bit JVM with compressed-oops enable and and with minimum heap size 1G and maximum heap size 1G, object references are 4 byte. In this case, compressed-oop is real native address.
But in 64 bit JVM with compressed-oops enable and and with minimum heap size 4G and maximum heap size 8G, object references are 4 byte. But in this case, compressed-oop is needed to be encoded/decoded (by 3 bit shifting) before getting real native address.
In both of cases, compressed-oop is enable, but how can I detect compressed-oops are used as native address or are they need to be  encoded/decoded ? If they are encoded/decoded, what is the value of bit shifting ?
Thanks in advance.
--
Serkan ÖZAL 
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20140628/1f637b35/attachment.htm>


More information about the hotspot-gc-dev mailing list