RFR: JDK-8318563: GetClassFields should not use random access to field [v2]

Alex Menkov amenkov at openjdk.org
Wed Jan 10 02:39:33 UTC 2024


> 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.

Alex Menkov has updated the pull request incrementally with one additional commit since the last revision:

  copyright headers

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/17094/files
  - new: https://git.openjdk.org/jdk/pull/17094/files/7a790887..76df939f

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=17094&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=17094&range=00-01

  Stats: 2 lines in 2 files changed: 0 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/17094.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17094/head:pull/17094

PR: https://git.openjdk.org/jdk/pull/17094


More information about the serviceability-dev mailing list