RFR: 8262386: resourcehogs/serviceability/sa/TestHeapDumpForLargeArray.java timed out

Chris Plummer cjplummer at openjdk.java.net
Fri Mar 19 20:23:39 UTC 2021


On Wed, 17 Mar 2021 07:21:06 GMT, Lin Zang <lzang at openjdk.org> wrote:

> IMO, it is better to dump all array object in `write-through` mode, because it could avoid memory consumption and performance issue when dumping large array. And the original implementation of object dump works like `write-through`, so this fix looks like sort of retrieve back to the original behavior.

I guess I don't understand why you would want write-through for small arrays but not large objects. I also have to admit I don't fully grasp the purpose of "segment mode". I see the docs say:

 301  * A heap dump can optionally be generated as a sequence of heap dump
 302  * segments. This sequence is terminated by an end record. The additional
 303  * tags allowed by format "JAVA PROFILE 1.0.2" are:
 304  *
 305  * HPROF_HEAP_DUMP_SEGMENT  denote a heap dump segment
 306  *
 307  *               [heap dump sub-records]*
 308  *               The same sub-record types allowed by HPROF_HEAP_DUMP
 309  *
 310  * HPROF_HEAP_DUMP_END      denotes the end of a heap dump

But all this seems to be doing is grouping the HPROF_HEAP_DUMP records into an array rather than having them interspersed with other types of records. How does this help, and why would this mode not always be enabled?

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

PR: https://git.openjdk.java.net/jdk/pull/2803


More information about the serviceability-dev mailing list