> This patch moves the parameters to an immutable list, to avoid allocations on 
> `parameterList` as well. In addition, it fixes 8304932, 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.
> 
> This patch has minor performance gains on `ofDescriptor` factory, even 
> compared to Adam's patch that optimized `ofDescriptor` in #12945.
> 
> 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:

  reuse immutable list to avoid array allocation

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/13186/files
  - new: https://git.openjdk.org/jdk/pull/13186/files/6044b7ee..efc8018c

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=13186&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=13186&range=02-03

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 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

Reply via email to