RFR(S): 8005885: enhance PrintCodeCache to print more data
Chris Plummer
chris.plummer at oracle.com
Fri Aug 23 10:10:11 PDT 2013
Hi Albert,
It think this is too verbose for default output when using just
-XX:+PrintCodeCache. You removed the following code:
974 if (!Verbose) return;
I think all this added output should only be provided when -XX:+Verbose
is used. Also, the verbose output used to only be for #ifndef PRODUCT,
but now it is for all builds. Was this intentional?
thanks,
Chris
On 8/23/13 6:31 AM, hotspot-compiler-dev-request at openjdk.java.net wrote:
> 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.
More information about the hotspot-compiler-dev
mailing list