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