Java 64 bit consumes excessive native memory (c-heap) due to JIT Compilation
Vladimir Kozlov
vladimir.kozlov at oracle.com
Thu Aug 23 12:06:41 PDT 2012
Ashish,
It could be related to 7148109. Register Allocator may consume a lot of memory
for particular shape of code.
You can also check if this memory reservation happens during JIT compilation.
Run with "-Xbatch -XX:CICompilerCount=1 -XX:+PrintCompilation". Only one
compiler thread will run and it will print which method is compiled. This way
you can find which method compilation triggers it if it is really JIT.
Regards,
Vladimir
Ashish Saxena wrote:
> These 64 MB blocks are committed and marked dirty and actually using
> the RAM.. Hence the conern. As Andrew pointed, may be it is due to
> some c-heap allocation specific to 64 bit systems.... but under what
> circumstances do these blocks get allocated ? Which JVM Component /
> Subcomponent is responsible for these extra memory blocks ?
>
> Based on test and JVM options I mentioned above, it seems that these
> gets allocated whenever JVM gets into JIT mode for the first time (may
> be, may be not) ... but which JVM sub component is responsible for
> this memory overhead ?
>
> Thanks,
> Ashish
>
> On Wed, Aug 22, 2012 at 11:07 PM, Andrew Haley <aph at redhat.com> wrote:
>> On 08/22/2012 05:36 PM, Vitaly Davidovich wrote:
>>> Reserving a 64mb private heap sounds fine on 64bit, but it sounds like that
>>> memory is being committed since RSS goes up?
>> Maybe, maybe not. We don't know that those 64M blocks are committed. All I'm
>> saying is that I have a suspicion that I know what they are.
>>
>> Andrew.
>>
More information about the hotspot-compiler-dev
mailing list