RFR: 8177107: Reduce memory footprint of java.lang.reflect.Constructor/Method
Aleksey Shipilev
shade at openjdk.java.net
Wed Apr 6 08:01:43 UTC 2022
On Mon, 4 Apr 2022 09:58:35 GMT, Claes Redestad <redestad at openjdk.org> wrote:
> As an alternative to #7667 I took a look at injecting an empty class array from the VM. Turns out we already do this for exception types - see https://github.com/openjdk/jdk/blob/master/src/hotspot/share/oops/method.cpp#L918 - and we can do similarly for the parameter types array. We still need to parse the signature for the return type, though.
>
> I've verified by dumping and inspecting heaps that this means we are not allocating extra `Class<?>[]` on `Method` reflection.
Looks fine. I would have thought to put `assert(parameter_count > 0)` near `mirrors->obj_at_put(index++, mirror);`, but I think it is fine as it is, since `obj_at_put` does its own bounds checking.
-------------
Marked as reviewed by shade (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/8089
More information about the core-libs-dev
mailing list