On Sun, 4 Jun 2023 23:52:37 GMT, Chen Liang <li...@openjdk.org> wrote:
>> This patch aims to improve the performance of MethodTypeDesc in general, as >> it is currently a performance bottleneck in the Classfile API. A previous >> revision changed the parameter storage from an array to a list; this is >> dropped now. Sorry for the force push. >> >> >> Benchmark >> (descString) Mode Cnt Score Error Units >> MethodTypeDescFactories.descriptorString >> (Ljava/lang/Object;Ljava/lang/String;)I avgt 6 27.778 ± 0.573 ns/op >> MethodTypeDescFactories.descriptorString >> ()V avgt 6 13.343 ± 0.235 ns/op >> MethodTypeDescFactories.descriptorString >> ([IJLjava/lang/String;Z)Ljava/util/List; avgt 6 40.828 ± 0.448 ns/op >> MethodTypeDescFactories.descriptorString >> ()[Ljava/lang/String; avgt 6 14.754 ± 0.162 ns/op >> MethodTypeDescFactories.ofArray >> (Ljava/lang/Object;Ljava/lang/String;)I avgt 6 8.616 ± 0.132 ns/op >> MethodTypeDescFactories.ofArray >> ()V avgt 6 2.146 ± 0.293 ns/op >> MethodTypeDescFactories.ofArray >> ([IJLjava/lang/String;Z)Ljava/util/List; avgt 6 14.595 ± 0.235 ns/op >> MethodTypeDescFactories.ofArray >> ()[Ljava/lang/String; avgt 6 2.064 ± 0.085 ns/op >> MethodTypeDescFactories.ofDescriptor >> (Ljava/lang/Object;Ljava/lang/String;)I avgt 6 97.077 ± 2.482 ns/op >> MethodTypeDescFactories.ofDescriptor >> ()V avgt 6 13.563 ± 0.111 ns/op >> MethodTypeDescFactories.ofDescriptor >> ([IJLjava/lang/String;Z)Ljava/util/List; avgt 6 130.543 ± 2.847 ns/op >> MethodTypeDescFactories.ofDescriptor >> ()[Ljava/lang/String; avgt 6 35.286 ± 0.260 ns/op >> MethodTypeDescFactories.ofList >> (Ljava/lang/Object;Ljava/lang/String;)I avgt 6 4.156 ± 0.258 ns/op >> MethodTypeDescFactories.ofList >> ()V avgt 6 2.192 ± 0.063 ns/op >> MethodTypeDescFactories.ofList >> ([IJLjava/lang/String;Z)Ljava/util/List; avgt 6 41.002 ± 0.235 ns/op >> MethodTypeDescFactories.ofList >> ()[Ljava/lang/String; avgt 6 2.200 ± 0.041 ns/op > > Chen Liang has updated the pull request with a new target base due to a merge > or a rebase. The pull request now contains two commits: > > - Forgot to upload latest micro > - general optimizations to MTD, no longer change backing storage I added an `ofTrusted` factory in MTD impl to validate a trusted parameter array. The name is intentionally chosen to distinguish from the regular `MethodTypeDesc.of` which accepts untrusted arrays. ------------- PR Comment: https://git.openjdk.org/jdk/pull/13186#issuecomment-1577686771