Compressed-OOP's on JVM
Andrew Haley
aph at redhat.com
Mon Jun 30 08:48:17 UTC 2014
On 28/06/14 13:21, serkan özal wrote:
> 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 ?
Like this:
$ java -Xmx1G -XX:+UnlockDiagnosticVMOptions -XX:+PrintCompressedOopsMode -XX:HeapBaseMinAddress=1G -version
heap address: 0x0000000040000000, size: 1024 MB, zero based Compressed Oops, 32-bits Oops
Narrow klass base: 0x0000000000000000, Narrow klass shift: 0
Compressed class space size: 1073741824 Address: 0x0000000080000000 Req Addr: 0x0000000080000000
openjdk version "1.8.0-internal"
> If they are encoded/decoded, what is the value of bit shifting ?
I'm not sure what this refers to.
Andrew.
More information about the hotspot-dev
mailing list