> Fixed the bug where if a caller keeps a reference to the array passed into > `MethodTypeDesc.of`, the caller may mutate the Desc via the array and can > create invalid MethodTypeDesc. > > Unfortunately, since the input array now needs to be copied, the `of` factory > suffers from a performance drop. But otherwise, this patch has minor > performance gains on `ofDescriptor` factory, even compared to Adam's patch > that optimized `ofDescriptor` in #12945. > > This patch moves the parameters to an immutable list, to avoid allocations on > `parameterList` as well. > > Benchmark of Oracle JDK 20: > https://gist.github.com/683c6219e183cbc2b336224fc2c0d50a > Benchmark of this patch: > https://gist.github.com/22be9371a2370fb4a7b44f1684750ec4 > Benchmark of [asotona's > patch](https://github.com/openjdk/jdk/pull/12945/files#diff-ac8e413d3e13532a2b0d34a90253c6ddd7a4f04082f792b9d076e9b5a33f2078): > https://gist.github.com/eb98579c3b51cafae481049a95a78f80 > > [sotona vs > this](https://jmh.morethan.io/?gists=eb98579c3b51cafae481049a95a78f80,22be9371a2370fb4a7b44f1684750ec4); > [20 vs > this](https://jmh.morethan.io/?gists=683c6219e183cbc2b336224fc2c0d50a,22be9371a2370fb4a7b44f1684750ec4); > [20 vs > sotona](https://jmh.morethan.io/?gists=683c6219e183cbc2b336224fc2c0d50a,eb98579c3b51cafae481049a95a78f80), > for reference
Chen Liang has updated the pull request incrementally with one additional commit since the last revision: Fix some inconsistencies in the method descriptor derivation methods ------------- Changes: - all: https://git.openjdk.org/jdk/pull/13186/files - new: https://git.openjdk.org/jdk/pull/13186/files/4aa2fe0c..2c940b25 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=13186&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=13186&range=00-01 Stats: 10 lines in 1 file changed: 4 ins; 1 del; 5 mod Patch: https://git.openjdk.org/jdk/pull/13186.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/13186/head:pull/13186 PR: https://git.openjdk.org/jdk/pull/13186