On Wed, 26 Nov 2025 15:23:44 GMT, Trevor Bond <[email protected]> wrote:
>> Enhance `ResourceParsingClassHierarchyResolver.getClassInfo` to use >> `ClassReaderImpl` to improve performance. Previously this method inflated >> and stored all UTF-8 entries in the constant pool and later accessed the >> array of strings to try finding the name of the superclass. >> `ClassReaderImpl` instead stores constant pool offsets and later lazily >> reads/inflates UTF8 entries as needed. >> >> I’ve ran all tier 1 tests and tests within `test/jdk/jdk/classfile` on the >> latest version of this change, and they all pass. >> >> I ran some informal performance testing to see if these changes led to any >> improvement. I created a .class file with several thousand unique strings in >> a String array to deliberately enlarge the number of UTF-8 entries in the >> constant pool. I then benchmarked the performance of running a process >> nearly identical to `ClassHierarchyInfoTest.testClassLoaderParsingResolver` >> on this custom class over 200 runs using JMH. The results are as follows. >> >> | Version | Avg Time (ns/op) | Δ vs Before | >> |--------|------------------:|-------------| >> | **Before** | 1,483,671.539 ± 3,477.744 | — | >> | **After** | 1,380,064.517 ± 3,482.434 | ≈ 7.0% faster | > > Trevor Bond has updated the pull request incrementally with one additional > commit since the last revision: > > Update copyright years Marked as reviewed by liach (Reviewer). ------------- PR Review: https://git.openjdk.org/jdk/pull/28458#pullrequestreview-3511581066
