RFR(S): 8005885: enhance PrintCodeCache to print more data
Albert Noll
albert.noll at oracle.com
Fri Aug 23 06:31:52 PDT 2013
Hi,
could I get reviews for the following patch?
jbs: https://bugs.openjdk.java.net/browse/JDK-8005885
webrev: http://cr.openjdk.java.net/~anoll/8005885/webrev.00/
<http://cr.openjdk.java.net/%7Eanoll/8005885/webrev.00/>
Many thanks in advance,
Albert
Problem: Currently we only print:
CodeCache:
nmethod dependency checking time 0.037552
#944 live = 3681K (hdr 4%, loc 2%, code 74%, stub 1%, [oops 0%, data
0%, pcs 5%])
#92 dead = 247K (hdr 7%, loc 6%, code 46%, stub 3%, [oops 0%, data 0%,
pcs 12%])
It would be helpful to have more detailed information about the code cache.
Solution: add more detailed information about the content of the code
cache when
exiting the VM.
See sample outputs:
java -XX:-TieredCompilation -XX:+PrintCodeCache -jar
dacapo-9.12-bach.jar fop
===== DaCapo 9.12 fop starting =====
===== DaCapo 9.12 fop PASSED in 7676 msec =====
CodeCache: size=49152Kb used=1729Kb max_used=1782Kb free=47422Kb
bounds [0x00007fbc13fb1000, 0x00007fbc14221000, 0x00007fbc16fb1000]
total_blobs=814 nmethods=512 adapters=254
compilation: enabled
Interpreter: total=199k, used=124k
Total number of live methods: 510
Tier 1:
#0 Java methods
#0 OSR methods
Tier 2:
#0 Java methods
#0 OSR methods
Tier 3:
#0 Java methods
#0 OSR methods
Tier 4:
#500 Java methods = 1119K (hdr 12%, loc 4%, code 38%, stub 2%, [oops
0%, data 1%, pcs 24%])
#5 OSR methods = 37K (hdr 3%, loc 3%, code 41%, stub 2%, [oops 0%,
data 1%, pcs 30%])
Native methods:
#5 Native methods = 4K (hdr 31%, loc 10%, code 55%, stub 0%, [oops
0%, data 0%, pcs 0%])
Total number of dead methods: 2
Tier 1:
#0 Java methods
#0 OSR methods
Tier 2:
#0 Java methods
#0 OSR methods
Tier 3:
#0 Java methods
#0 OSR methods
Tier 4:
#1 Java methods = 67K (hdr 0%, loc 3%, code 41%, stub 0%, [oops 0%,
data 0%, pcs 40%])
#1 OSR methods = 18K (hdr 1%, loc 4%, code 39%, stub 2%, [oops 0%,
data 1%, pcs 31%])
Native methods:
#0 Native methods
Total number of stubs: 302
#23 runtime = 5K (hdr 25%, loc 1%, code 67%, stub 0%, [oops 0%, data
0%, pcs 0%])
#1 deoptimization = 1K (hdr 7%, loc 0%, code 89%, stub 0%, [oops 0%,
data 0%, pcs 0%])
#1 uncommon trap = 0K (hdr 13%, loc 1%, code 83%, stub 0%, [oops 0%,
data 0%, pcs 0%])
#1 exception = 0K (hdr 27%, loc 3%, code 65%, stub 0%, [oops 0%,
data 0%, pcs 0%])
#3 safepoint = 1K (hdr 10%, loc 1%, code 86%, stub 0%, [oops 0%,
data 0%, pcs 0%])
#254 C2I/I2C adapter = 116K (hdr 13%, loc 1%, code 82%, stub 0%,
[oops 0%, data 0%, pcs 0%])
#0 method handles adapter
#19 other = 308K (hdr 0%, loc 0%, code 99%, stub 0%, [oops 0%, data
0%, pcs 0%])
java -XX:+TieredCompilation -XX:+PrintCodeCache -jar
dacapo-9.12-bach.jar fop
===== DaCapo 9.12 fop starting =====
===== DaCapo 9.12 fop PASSED in 4850 msec =====
CodeCache: size=245760Kb used=7355Kb max_used=7370Kb free=238404Kb
bounds [0x00007f49fd000000, 0x00007f49fd740000, 0x00007f4a0c000000]
total_blobs=2578 nmethods=2240 adapters=254
compilation: enabled
Interpreter: total=199k, used=123k
Total number of live methods: 2205
Tier 1:
#466 Java methods = 333K (hdr 39%, loc 5%, code 25%, stub 19%, [oops
0%, data 0%, pcs 1%])
#0 OSR methods
Tier 2:
#429 Java methods = 1047K (hdr 11%, loc 5%, code 40%, stub 8%, [oops
0%, data 1%, pcs 18%])
#0 OSR methods
Tier 3:
#1069 Java methods = 3817K (hdr 7%, loc 4%, code 53%, stub 5%, [oops
0%, data 0%, pcs 17%])
#5 OSR methods = 92K (hdr 1%, loc 4%, code 57%, stub 2%, [oops 0%,
data 0%, pcs 23%])
Tier 4:
#190 Java methods = 648K (hdr 8%, loc 3%, code 43%, stub 1%, [oops
0%, data 1%, pcs 26%])
#3 OSR methods = 15K (hdr 5%, loc 3%, code 47%, stub 1%, [oops 0%,
data 0%, pcs 28%])
Native methods:
#43 Native methods = 37K (hdr 31%, loc 10%, code 55%, stub 0%, [oops
0%, data 0%, pcs 0%])
Total number of dead methods: 35
Tier 1:
#0 Java methods
#0 OSR methods
Tier 2:
#3 Java methods = 22K (hdr 3%, loc 5%, code 40%, stub 6%, [oops 0%,
data 1%, pcs 27%])
#0 OSR methods
Tier 3:
#31 Java methods = 193K (hdr 4%, loc 4%, code 54%, stub 3%, [oops
0%, data 0%, pcs 21%])
#1 OSR methods = 2K (hdr 11%, loc 5%, code 52%, stub 7%, [oops 0%,
data 0%, pcs 7%])
Tier 4:
#0 Java methods
#0 OSR methods
Native methods:
#0 Native methods
Total number of stubs: 338
#57 runtime = 24K (hdr 14%, loc 3%, code 79%, stub 0%, [oops 0%,
data 0%, pcs 0%])
#1 deoptimization = 1K (hdr 7%, loc 0%, code 89%, stub 0%, [oops 0%,
data 0%, pcs 0%])
#1 uncommon trap = 0K (hdr 13%, loc 1%, code 83%, stub 0%, [oops 0%,
data 0%, pcs 0%])
#1 exception = 0K (hdr 27%, loc 3%, code 65%, stub 0%, [oops 0%,
data 0%, pcs 0%])
#3 safepoint = 1K (hdr 10%, loc 1%, code 86%, stub 0%, [oops 0%,
data 0%, pcs 0%])
#254 C2I/I2C adapter = 116K (hdr 13%, loc 1%, code 82%, stub 0%,
[oops 0%, data 0%, pcs 0%])
#0 method handles adapter
#21 other = 871K (hdr 0%, loc 0%, code 99%, stub 0%, [oops 0%, data
0%, pcs 0%])
Please let me know if you think more/less/different data should be printed.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20130823/e1a1c743/attachment-0001.html
More information about the hotspot-compiler-dev
mailing list