On Tue, 9 May 2023 16:09:14 GMT, Adam Sotona <asot...@openjdk.org> wrote:
>> Following improvements implemented: >> - Switch over `String` replaced with switch single char >> - Binary search for frames in `StackMapGenerator` >> - `StackMapGenerator.rawHandlers` with pre-calculated offsets >> - `ClassEntry` is caching `ClassDesc` symbol >> - Caching of type symbols in `NameAndTypeEntry` and `MethodTypeEntry` >> - Caching `MethodTypeDesc` in `MethodInfo` implementations >> - `StackMapGenerator` and `Utils` delegating to cached `MethodTypeDesc` >> instead of custom parsing >> >> No API change. >> >> Benchmarks show stack map generation improved by 21% and code generation >> from symbols improved by 30%. >> >> >> Benchmark Mode Cnt Score Error Units >> GenerateStackMaps.benchmark thrpt 10 407931.202 ± 13101.023 ops/s >> RebuildMethodBodies.shared thrpt 4 10258.597 ± 383.699 ops/s >> RebuildMethodBodies.unshared thrpt 4 7224.543 ± 256.800 ops/s >> >> >> >> Benchmark Mode Cnt Score Error Units >> GenerateStackMaps.benchmark thrpt 10 495101.110 ± 2389.628 ops/s >> RebuildMethodBodies.shared thrpt 4 13380.272 ± 810.113 ops/s >> RebuildMethodBodies.unshared thrpt 4 9399.863 ± 557.060 ops/s > > Adam Sotona has updated the pull request incrementally with one additional > commit since the last revision: > > fixed StackMapGenerator I'm having a look, but hit an early hurdle in that the microbenchmarks under org/openjdk/bench/jdk/classfile all seem to be missing necessary `--add-opens` flags. Micros should be runnable without any extra flags on the command line. test/micro/org/openjdk/bench/jdk/classfile/RebuildMethodBodies.java line 42: > 40: @BenchmarkMode(Mode.Throughput) > 41: @State(Scope.Benchmark) > 42: @Fork(value = 1, jvmArgsAppend = {"--enable-preview"}) Suggestion: @Fork(value = 1, jvmArgsAppend = {"--enable-preview", "--add-opens", "java.base/jdk.internal.classfile=ALL-UNNAMED", "--add-opens", "java.base/jdk.internal.classfile.constantpool=ALL-UNNAMED", "--add-opens", "java.base/jdk.internal.classfile.instruction=ALL-UNNAMED"}) ------------- PR Review: https://git.openjdk.org/jdk/pull/13671#pullrequestreview-1418960199 PR Review Comment: https://git.openjdk.org/jdk/pull/13671#discussion_r1188810244