Integrated: JDK-8318563: GetClassFields should not use random access to field
Alex Menkov
amenkov at openjdk.org
Fri Jan 12 20:44:33 UTC 2024
On Wed, 13 Dec 2023 21:32:50 GMT, Alex Menkov <amenkov at openjdk.org> wrote:
> FieldStream/FilteredFieldStream classes from reflectionUtils.hpp iterate class fields in the reverse order and use field indexes to access instead of forward iteration. This is performance ineffective (see [JDK-8317692](https://bugs.openjdk.org/browse/JDK-8317692) for details).
> The change introduces new class FilteredJavaFieldStream as a replacement for FilteredFieldStream.
> It uses the same FilteredField/FilteredFieldsMap stuff as FilteredJavaFieldStream does.
>
> FieldStream/FilteredFieldStream are still used by heap walking API, will be cleaned by [JDK-8317636](https://bugs.openjdk.org/browse/JDK-8317636)
>
> Testing:
> - tier1..3
> - all tests which calls GetClassFields: open/test/hotspot/jtreg/serviceability/jvmti,open/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassFields,open/test/hotspot/jtreg/vmTestbase/nsk/jvmti/IterateThroughHeap,open/test/hotspot/jtreg/vmTestbase/nsk/jvmti/unit/IsSynthetic
> including
> - test/hotspot/jtreg/vmTestbase/nsk/jvmti/GetClassFields/getclfld007.java - tests that GetClassFields returns fields in correct order;
> - test/hotspot/jtreg/serviceability/jvmti/GetClassFields/FilteredFields/FilteredFieldsTest.java - test that GetClassFields filters out field like reflection.
This pull request has now been integrated.
Changeset: 84cf4cb3
Author: Alex Menkov <amenkov at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/84cf4cb350331aac147fdf4c6d130cdf5448c987
Stats: 52 lines in 2 files changed: 35 ins; 8 del; 9 mod
8318563: GetClassFields should not use random access to field
Reviewed-by: sspitsyn, cjplummer, fparain
-------------
PR: https://git.openjdk.org/jdk/pull/17094
More information about the hotspot-dev
mailing list