RFR: 8338546: Speed up ConstantPoolBuilder::classEntry(ClassDesc) [v3]
ExE Boss
duke at openjdk.org
Tue Sep 17 02:04:51 UTC 2024
On Tue, 17 Sep 2024 02:01:49 GMT, Chen Liang <liach at openjdk.org> wrote:
>> Speed up `ConstantPoolBuilder::classEntry(ClassDesc)` by going through `ClassDesc` comparison and reusing descriptor hash to calculate internal name hash if possible. No suitable device to run benchmarks so need to find something to run the new benchmark to ensure things work as intended.
>
> Chen Liang has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 15 commits:
>
> - Fix build
> - Merge branch 'master' of https://github.com/openjdk/jdk into feature/classentry-speedup
> - Buggy 2nd attempt - crashes hotspot
> - Merge branch 'master' of https://github.com/openjdk/jdk into feature/classentry-speedup
> - Merge branch 'master' of https://github.com/openjdk/jdk into feature/classentry-speedup
> - More conflicts
> - Merge branch 'master' of https://github.com/openjdk/jdk into feature/classentry-speedup
> - Merge branch 'master' of https://github.com/openjdk/jdk into feature/classentry-speedup
> - Merge branch 'master' of https://github.com/openjdk/jdk into feature/classentry-speedup
> - Another bug in benchmark
> - ... and 5 more: https://git.openjdk.org/jdk/compare/996790c7...6117a5bd
src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java line 559:
> 557: public static final class ClassEntryImpl extends AbstractNamedEntry implements ClassEntry {
> 558:
> 559: public @Stable ClassDesc sym;
As [GH‑20957] has now been merged, this can be made to use the `Utf8Entry.typeSym` field, which would also speed up [`ConstantPoolBuilder::classEntry(Utf8Entry)`].
[GH‑20957]: https://github.com/openjdk/jdk/pull/20957
[`ConstantPoolBuilder::classEntry(Utf8Entry)`]: https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/classfile/constantpool/ConstantPoolBuilder.html#classEntry(java.lang.classfile.constantpool.Utf8Entry)
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/20667#discussion_r1760275110
More information about the core-libs-dev
mailing list