RFR: 8252842: Extend jmap to support parallel heap dump [v32]

Lin Zang lzang at openjdk.java.net
Tue Sep 14 14:35:18 UTC 2021


On Mon, 13 Sep 2021 16:12:48 GMT, Ralf Schmelter <rschmelter at openjdk.org> wrote:

>> Lin Zang has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   fix build error
>
> src/hotspot/share/services/heapDumper.cpp line 1797:
> 
>> 1795:   if (o->is_instance()) {
>> 1796:     InstanceKlass* ik = InstanceKlass::cast(o->klass());
>> 1797:     size = DumperSupport::instance_size(ik);
> 
> Getting the size of an instance can be surprisingly expensive for classes with many static fields, since we iterate over all static fields of the class. So I would avoid having to calculate the size twice (here and when we are actually dump it). Maybe here it would just be enough to use o->size() * 8 as an upper limit value of the real size in the heap dump. After all practically no non-array object will ever we that large.

Good suggestion! I didn't realize that o->size() * 8 can be used as an upper limit.

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

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


More information about the serviceability-dev mailing list