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