RFR: 8185925 & 8153682 (footprint reduction of java.lang.StackFrameInfo)

Remi Forax forax at univ-mlv.fr
Tue Nov 7 07:45:32 UTC 2017


Hi Brent,
if you declare retainClassRef as a byte, you can even compress the data structure a little bit more, no ?
a boolean (as a field) uses 4 bytes while a byte uses welll 1 byte.
Given that bci is a short, the VM will put both bci and retainClassRef on the same 32 bits slot.

cheers,
Rémi

----- Mail original -----
> De: "Brent Christian" <brent.christian at oracle.com>
> À: "core-libs-dev" <core-libs-dev at openjdk.java.net>, "hotspot-dev" <hotspot-dev at openjdk.java.net>
> Envoyé: Mardi 7 Novembre 2017 01:23:16
> Objet: RFR: 8185925 & 8153682 (footprint reduction of java.lang.StackFrameInfo)

> Hi,
> 
> There are a couple opportunities to reduce the memory footprint of
> java.lang.StackFrameInfo (the internal implementation of
> java.lang.StackWalker.StackFrame):
> 
> 8153682[1] : StackFrameInfo.declaringClass could be removed
> 8185925[2] : StackFrameInfo::walker field can be replaced with bitmap to
> save footprint
> 
> I had a look using jol[3].  Removing only 'walker' helps only under 32-
> and 64-bit, but not with compressed oops.  Removing both 'walker' and
> 'declaringClass' brings a benefit to compressed oops as well (though not
> for 16-byte aligned).
> 
> The size change, in bytes, for each execution mode is as follows:
> 
>                              32-bit: 32->24
>                              64-bit: 56->40
>                  64/compressed oops: 32->24
> 64/compressed oops, 16-byte aligned: 32->32
> 
> (For reference, the jol reports for the baseline and specimen are at [4]
> and [5], respectively.)
> 
> Please review my code change for this.  The webrev is here:
> http://cr.openjdk.java.net/~bchristi/8185925/webrev.03/
> 
> An automated test run is in progress.
> 
> Thanks!
> -Brent
> 
> --
> 1. https://bugs.openjdk.java.net/browse/JDK-8153682
> 2. https://bugs.openjdk.java.net/browse/JDK-8185925
> 3. http://openjdk.java.net/projects/code-tools/jol/
> 4.
> http://cr.openjdk.java.net/~bchristi/8185925/StackFrameInfo.jol.baseline.txt
> 5.
> http://cr.openjdk.java.net/~bchristi/8185925/StackFrameInfo.jol.rmDeclClass.txt


More information about the core-libs-dev mailing list