> 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 two additional commits since the last revision: - changed LinkedList to ArrayList in RebuildMethodBodies benchmark - added RepeatedModelTraversal JMH benchmark ------------- Changes: - all: https://git.openjdk.org/jdk/pull/13671/files - new: https://git.openjdk.org/jdk/pull/13671/files/3cbb11c2..3b299727 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=13671&range=04 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=13671&range=03-04 Stats: 74 lines in 2 files changed: 71 ins; 0 del; 3 mod Patch: https://git.openjdk.org/jdk/pull/13671.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/13671/head:pull/13671 PR: https://git.openjdk.org/jdk/pull/13671