RFR: 8338546: Speed up ConstantPoolBuilder::classEntry(ClassDesc)
Claes Redestad
redestad at openjdk.org
Thu Aug 22 11:58:03 UTC 2024
On Wed, 21 Aug 2024 22:27:02 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.
test/micro/org/openjdk/bench/jdk/classfile/ConstantPoolBuildingClassEntry.java line 64:
> 62: builder = ConstantPoolBuilder.of();
> 63: classDescs = List.of(
> 64: CD_Byte, CD_Object, CD_Long.arrayType(), CD_String, CD_String, CD_Object, CD_Short,
Should this include some primitive class descs? I only see wrapper types like `CD_Integer`
test/micro/org/openjdk/bench/jdk/classfile/ConstantPoolBuildingClassEntry.java line 91:
> 89: public void identicalLookup(Blackhole bh) {
> 90: for (int i = 0; i < RUNS; i++) {
> 91: int n = random.nextInt(size);
Why the randomization here? `Random` can be pretty slow in and off itself, skewing results, and scales poorly. Prefer `ThreadLocalRandom`. `classDescs` look pretty random to begin with, so why not just loop over it once per measurement?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/20667#discussion_r1726914428
PR Review Comment: https://git.openjdk.org/jdk/pull/20667#discussion_r1726912737
More information about the core-libs-dev
mailing list