United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7150058 Allocate symbols from null boot loader to an arena for NMT
JDK-7150058 : Allocate symbols from null boot loader to an arena for NMT

Details
Type:
Enhancement
Submit Date:
2012-03-01
Status:
Closed
Updated Date:
2014-02-04
Project Name:
JDK
Resolved Date:
2012-04-11
Component:
hotspot
OS:
generic
Sub-Component:
runtime
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
7u10
Fixed Versions:
hs24 (b07)

Related Reports
Backport:
Backport:
Backport:

Sub Tasks

Description
Native memory tracking generates records for individual C heap allocated objets.   At startup time many symbols are created.  Each symbol is a C heap malloc allocation so that they can be individually reclaimed.  The symbols from the null boot loader are never reclaimed, since the null boot loader isn't unloaded.  These symbols can be put in a more permanent memory area.

This seems like it would be a performance gain because the immortal symbols do not need to be ref counted.  It also seems like it would use less real memory since each symbol won't have a malloc buffer.   My measurements so no performance improvements in either of these areas, unfortunately.

The main reason to do this is for NMT.   Also with permgen removal, these symbols are allocated to a mmap space using the same mechanism as arena mechanism, so that they can be shared with class data sharing without having to relocate them in the shared archive.

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/fc9d8850ab8b
                                     
2012-03-23
EVALUATION

Summary: Move symbol allocation to an arena so NMT doesn't have to track them at
startup.
Reviewed-by: never, kamg, zgu

As usual, guessing at build numbers...
                                     
2012-03-23
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/fc9d8850ab8b
                                     
2012-04-04



Hardware and Software, Engineered to Work Together