<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks for the helpful infomation! Yeah I am trying to understand this. it seems after jdk21 the int[] is turned to FillerArray (or FillerElement?) and I am not sure if it count into the JMX bean for monitoring the Oldgen size of G1GC or not though.</div>
<div id="Signature"></div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Aleksey Shipilev <shipilev@amazon.de><br>
<b>Sent:</b> Thursday, July 25, 2024 23:56<br>
<b>To:</b> shanghe chen <chenshanghe@outlook.com>; jdk-dev@openjdk.org <jdk-dev@openjdk.org><br>
<b>Subject:</b> Re: large size of [Ljdk.internal.vm.FillerElement in jmap histo</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText"><br>
<br>
On 25.07.24 17:54, shanghe chen wrote:<br>
> Hi in a web service with openjdk 21.0.3 using G1GC with heap size 26GB, we recently sometimes
<br>
> observed a huge jump up of the oldgen like from 9GB to 20GB in about 3 minutes and then slowly
<br>
> returned to 9GB (which is the normal size) in about 30 minutes, checking jmap histo we found:<br>
> <br>
>   num     #instances         #bytes  class name (module)<br>
> -------------------------------------------------------<br>
>     1:       6328181    16406573984  [Ljdk.internal.vm.FillerElement; (java.base@21.0.3)<br>
>     2:      18920559     1233399640  [Ljava.lang.Object; (java.base@21.0.3)<br>
>     3:      18813814      848534768  [B (java.base@21.0.3)<br>
>     4:       5939383      771222984  [I (java.base@21.0.3)<br>
>     5:       3093810      654462640  [J (java.base@21.0.3)<br>
>     6:      15519103      496611296  java.util.HashMap$Node (java.base@21.0.3)<br>
>     7:      17985808      431659392  java.util.Date (java.base@21.0.3)<br>
>     8:      17415598      417974352  java.util.ArrayList (java.base@21.0.3)<br>
>     9:      16857329      404575896  java.lang.String (java.base@21.0.3)<br>
>    10:       9743073      389722920  java.math.BigDecimal (java.base@21.0.3)<br>
>    11:       4410896      281417160  [Ljava.util.HashMap$Node; (java.base@21.0.3)<br>
> <br>
> Any idea for why the class jdk.internal.vm.FillerElement has so large size? There seems to be less
<br>
> document for this class. Thanks in advanced!<br>
<br>
Those are filler arrays, they are not "real" reachable objects. See more here:<br>
  <a href="https://shipilev.net/jvm/anatomy-quarks/5-tlabs-and-heap-parsability/">
https://shipilev.net/jvm/anatomy-quarks/5-tlabs-and-heap-parsability/</a><br>
<br>
-Aleksey<br>
<br>
<br>
<br>
Amazon Web Services Development Center Germany GmbH<br>
Krausenstr. 38<br>
10117 Berlin<br>
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss<br>
Eingetragen am Amtsgericht Charlottenburg unter HRB 257764 B<br>
Sitz: Berlin<br>
Ust-ID: DE 365 538 597<br>
</div>
</span></font></div>
</body>
</html>