RFR: 8298126: Print statistics for objects in CDS archive heap

Ashutosh Mehra duke at openjdk.org
Mon Dec 5 23:33:04 UTC 2022


On Mon, 5 Dec 2022 22:09:58 GMT, Ioi Lam <iklam at openjdk.org> wrote:

> For diagnostic purposes, it's useful to print out statistics of the objects in the CDS archive heap. For example, this shows the number of objects with a distribution of different sizes.
> 
> 
> [6.772s][info][cds,heap]        0 objects are <= 8      bytes (total        0 bytes, avg      0.0 bytes)
> [6.772s][info][cds,heap]     1205 objects are <= 16     bytes (total    19280 bytes, avg     16.0 bytes)
> [6.772s][info][cds,heap]    15717 objects are <= 32     bytes (total   411024 bytes, avg     26.2 bytes)
> [6.772s][info][cds,heap]     4127 objects are <= 64     bytes (total   198080 bytes, avg     48.0 bytes)
> [6.772s][info][cds,heap]     2380 objects are <= 128    bytes (total   243016 bytes, avg    102.1 bytes)
> [6.772s][info][cds,heap]      293 objects are <= 256    bytes (total    47920 bytes, avg    163.5 bytes)
> [6.772s][info][cds,heap]       51 objects are <= 512    bytes (total    17112 bytes, avg    335.5 bytes)
> [6.772s][info][cds,heap]       18 objects are <= 1024   bytes (total    14480 bytes, avg    804.4 bytes)
> [6.772s][info][cds,heap]       11 objects are <= 2048   bytes (total    13440 bytes, avg   1221.8 bytes)
> [6.772s][info][cds,heap]        3 objects are <= 4096   bytes (total     9808 bytes, avg   3269.3 bytes)
> [6.772s][info][cds,heap]        3 objects are <= 8192   bytes (total    12840 bytes, avg   4280.0 bytes)
> [6.772s][info][cds,heap]        4 objects are <= 16384  bytes (total    37240 bytes, avg   9310.0 bytes)
> [6.772s][info][cds,heap]        0 objects are <= 32768  bytes (total        0 bytes, avg      0.0 bytes)
> [6.772s][info][cds,heap]        0 objects are <= 65536  bytes (total        0 bytes, avg      0.0 bytes)
> [6.772s][info][cds,heap]        0 objects are <= 131072 bytes (total        0 bytes, avg      0.0 bytes)
> [6.772s][info][cds,heap]        0 objects are <= 262144 bytes (total        0 bytes, avg      0.0 bytes)
> [6.772s][info][cds,heap]        0 huge  objects               (total        0 bytes, avg      0.0 bytes)
> [6.772s][info][cds,heap]    23812 total objects               (total  1024240 bytes, avg     43.0 bytes)
> 
> 
> These stats are useful when implement large changes in the CDS heap archiving code. For example, [JDK-8296344](https://bugs.openjdk.org/browse/JDK-8296344) significantly changes how the objects are copied into the archive. We can use these stats to verify that the exact same objects are copied.

@iklam does it make sense to collect these stats only for non-product builds as these are not intended for end-users.

-------------

PR: https://git.openjdk.org/jdk/pull/11520


More information about the hotspot-runtime-dev mailing list