RFR (S) JDK-8014912 Restore PrintSharedSpaces after NPG
Ioi Lam
ioi.lam at oracle.com
Thu May 23 09:35:47 PDT 2013
On 05/23/2013 06:32 AM, Karen Kinnear wrote:
> Ioi,
>
> This will be really helpful - in fact we'd like to use it right now :-)
> Would it be hard to track the read-only and read-write separately, so we could at a glance
> 1) see what metadata is ro vs. rw and
> 2) see subtotal sizes and percentages (of combined ro/rw) for ro/rw?
Hi Karen,
The printed table contains 3 columns: ro, rw, all (ro+rw combined).
Do you mean moving the ro, rw and all into separate rows?
Thanks
- Ioi
> thanks,
> Karen
> On May 22, 2013, at 9:47 PM, Coleen Phillimore wrote:
>
>> Ioi,
>>
>> This looks really good. The only thing is that we have code to create histograms in the VM (see utilities/histogram.hpp). Couldn't you reuse this class instead of writing your own histogram creating function? It would sort your data for you! I don't know if it would have the data you are looking for but lots of other jvm code uses this class for a similar purpose.
>>
>> Thanks,
>> Coleen
>>
>> On 5/21/2013 6:29 PM, Ioi Lam wrote:
>>> Please review:
>>>
>>> http://cr.openjdk.java.net/~iklam/8014912/print_sharedspc_001/
>>>
>>> Bug: Restore PrintSharedSpaces functionality after NPG
>>>
>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8014912
>>> https://jbs.oracle.com/bugs/browse/JDK-8014912
>>>
>>> Summary of fix:
>>>
>>> I added a new enum, MetaspaceObj::Type, which is passed to
>>>
>>> Metaspace::allocate(ClassLoaderData* loader_data, size_t word_size,
>>> bool read_only, MetaspaceObj::Type type, TRAPS);
>>>
>>> During CDS dumping, all allocations are logged in a linked list to
>>> be processed later by metaspaceShared.cpp to generate statistics for
>>> objects in the CDS archive. See sample output below.
>>>
>>> * No such logging is doneat normal VM execution time so there
>>> is no performance impact.
>>>
>>> * I verified that the patch can be applied cleanly on Jon's
>>> recentpatch for JDK-8014862 "Add fast Metasapce capacity and
>>> used per MetadataType"
>>>
>>> http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/2b1a9d972fc2
>>>
>>> Testing:
>>>
>>> JPRT, UTE (vm.quick.testlist)
>>>
>>> Sample output:
>>>
>>> ro_cnt ro_bytes % | rw_cnt rw_bytes % | all_cnt all_bytes %
>>> --------------------+---------------------------+---------------------------+--------------------------
>>> Unknown : 1 64 0.0 | 1 64 0.0 | 2 128 0.0
>>> Class : 0 0 0.0 | 2364 2006080 14.7 | 2364 2006080 9.2
>>> Symbol : 49858 2507168 30.9 | 0 0 0.0 | 49858 2507168 11.5
>>> TypeArrayU1 : 13264 608336 7.5 | 2365 428784 3.1 | 15629 1037120 4.8
>>> TypeArrayU2 : 4796 341952 4.2 | 0 0 0.0 | 4796 341952 1.6
>>> TypeArrayU4 : 2371 178528 2.2 | 0 0 0.0 | 2371 178528 0.8
>>> TypeArrayU8 : 3708 365920 4.5 | 0 0 0.0 | 3708 365920 1.7
>>> TypeArrayOther : 0 0 0.0 | 0 0 0.0 | 0 0 0.0
>>> Method : 0 0 0.0 | 32552 3659888 26.8 | 32552 3659888 16.8
>>> ConstMethod : 32552 4099008 50.6 | 0 0 0.0 | 32552 4099008 18.8
>>> MethodData : 0 0 0.0 | 0 0 0.0 | 0 0 0.0
>>> ConstantPool : 0 0 0.0 | 2365 3225600 23.6 | 2365 3225600 14.8
>>> ConstantPoolCache : 0 0 0.0 | 2350 2212320 16.2 | 2350 2212320 10.2
>>> Annotation : 26 1248 0.0 | 0 0 0.0 | 26 1248 0.0
>>> MethodCounters : 0 0 0.0 | 0 0 0.0 | 0 0 0.0
>>> SymbolHashentry : 0 0 0.0 | 49858 1595456 11.7 | 49858 1595456 7.3
>>> SymbolBuckets : 0 0 0.0 | 20011 320176 2.3 | 20011 320176 1.5
>>> Other : 0 0 0.0 | 0 203893 1.5 | 0 203893 0.9
>>> --------------------+---------------------------+---------------------------+--------------------------
>>> Total : 106576 8102224 100.0 | 111866 13652261 100.0 | 218442 21754485 100.0
>>>
>>>
>>> Thanks,
>>> Ioi
>>>
>>>
More information about the hotspot-dev
mailing list