RFR: 8309413: Improve the performance of MethodTypeDesc::descriptorString [v2]
Chen Liang
liach at openjdk.org
Tue Jun 6 16:35:02 UTC 2023
On Sun, 26 Mar 2023 20:45:19 GMT, Chen Liang <liach at 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 incrementally with one additional commit since the last revision:
>
> Fix some inconsistencies in the method descriptor derivation methods
Moved this patch to another issue that focus on converting the storage from array to immutable list. The fix for mutation is now a side effect of this patch.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/13186#issuecomment-1522789129
More information about the core-libs-dev
mailing list