RFR(s): 8221925: [metaspace] provide size histogram for jcmd VM.metaspace
Thomas Stüfe
thomas.stuefe at gmail.com
Tue Jun 11 12:52:58 UTC 2019
Hi all,
I withdraw this enhancement - after some consideration, I do not think it
useful enough to justify the added complexity, especially not in the light
of JDK-8221173.
Cheers, Thomas
On Wed, Apr 3, 2019 at 6:41 PM Thomas Stüfe <thomas.stuefe at gmail.com> wrote:
> Hi all,
>
> could I get reviews please for this small enhancement:
>
> rfe: https://bugs.openjdk.java.net/browse/JDK-8221925
> cr:
> http://cr.openjdk.java.net/~stuefe/webrevs/8221925-metaspace-histogram/webrev.00/webrev/index.html
>
> This patch adds a small feature to the VM.metaspace command, a size
> histogram. That one is useful to get an idea of the size distribution of
> allocations, as a base for improving chunk allocation strategies.
>
> ----------------
> Example output:
>
> $ jcmd stuefe VM.metaspace histo
>
> 12835:
> <snip>
>
> Size histogram:
> Non-Class:
> <16 <32 <64 <128 <256 <512 <1k
> <2k <4k <8k <16k <32k <64k <128k <256k larger
> -- by object type: --
> Class 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> Symbol 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> TypeArrayU1 0 4056 2281 1098 1068 251 116
> 40 10 1 0 0 0 0 0 0
> TypeArrayU2 2609 1698 1604 732 321 102 41
> 11 2 0 0 0 0 0 0 0
> TypeArrayU4 78 193 49 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> TypeArrayU8 0 3563 2307 2298 1233 267 113
> 27 2 0 0 0 0 0 0 0
> TypeArrayOther 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> Method 0 0 0 32151 0 0 0
> 0 0 0 0 0 0 0 0 0
> ConstMethod 0 0 1225 18968 9242 1958 526
> 202 23 4 1 2 0 0 0 0
> MethodData 0 0 0 0 0 424 2323
> 364 103 26 8 1 0 0 0 0
> ConstantPool 0 0 0 89 286 1577 1297
> 450 225 110 40 10 1 0 0 0
> ConstantPoolCache 0 0 187 223 344 1432 936
> 229 145 60 23 4 1 0 0 0
> Annotations 0 0 67 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> MethodCounters 0 0 0 12838 0 0 0
> 0 0 0 0 0 0 0 0 0
> -- by space type: --
> Standard 489 4008 3222 25473 4066 1458 2239
> 743 227 87 44 15 2 0 0 0
> Boot 539 3380 2992 33203 5796 2351 2065
> 580 283 114 28 2 0 0 0 0
> UnsafeAnonymous 159 622 506 1221 132 202 48
> 0 0 0 0 0 0 0 0 0
> Reflection 1500 1500 1000 8500 2500 2000 1000
> 0 0 0 0 0 0 0 0 0
> -- total: --
> 2687 9510 7720 68397 12494 6011 5352
> 1323 510 201 72 17 2 0 0 0
>
> Class:
> <16 <32 <64 <128 <256 <512 <1k
> <2k <4k <8k <16k <32k <64k <128k <256k larger
> -- by object type: --
> Class 0 0 0 0 0 0 4013
> 219 4 0 0 0 0 0 0 0
> Symbol 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> TypeArrayU1 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> TypeArrayU2 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> TypeArrayU4 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> TypeArrayU8 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> TypeArrayOther 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> Method 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> ConstMethod 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> MethodData 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> ConstantPool 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> ConstantPoolCache 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> Annotations 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> MethodCounters 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 0 0
> -- by space type: --
> Standard 0 0 0 0 0 0 1129
> 143 4 0 0 0 0 0 0 0
> Boot 0 0 0 0 0 0 1200
> 76 0 0 0 0 0 0 0 0
> UnsafeAnonymous 0 0 0 0 0 0 184
> 0 0 0 0 0 0 0 0 0
> Reflection 0 0 0 0 0 0 1500
> 0 0 0 0 0 0 0 0 0
> -- total: --
> 0 0 0 0 0 0 4013
> 219 4 0 0 0 0 0 0 0
>
> --------------------------
>
>
> I kept the coding as simple and lean as possible. I think the patch is
> reasonably small.
>
> I ran all jtreg Metaspace tests locally; will run the usual jdk-submit
> tests and put this through our nightlies at SAP.
>
> Thank you!
>
> Best Regards, Thomas
>
>
>
More information about the hotspot-runtime-dev
mailing list