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

Reply via email to