On Thu, 30 Mar 2023 23:13:51 GMT, Mandy Chung <mch...@openjdk.org> wrote:

>> This patch optimizes ClassDesc.resolveConstantDesc for array classes. 
>> Otherwise, the performance of reference class resolution remain unchanged. 
>> https://jmh.morethan.io/?gist=111095eecf7a735fe8c96e4b952b58c1 It also 
>> includes a benchmark for MethodTypeDesc resolution, which currently does not 
>> yet depend on class desc resolution but can be later optimized if it does 
>> switch.
>
> src/java.base/share/classes/java/lang/constant/ConstantUtils.java line 130:
> 
>> 128: 
>> 129:     static boolean isPrimitiveArray(String 
>> referenceTypeDescriptorString) {
>> 130:         return 
>> referenceTypeDescriptorString.charAt(referenceTypeDescriptorString.length() 
>> - 1) != ';';
> 
> it also needs to check if it starts with `[`
> 
> 
> Suggestion:
> 
>         return referenceTypeDescriptorString.startsWith("[") &&  
>                
> referenceTypeDescriptorString.charAt(referenceTypeDescriptorString.length() - 
> 1) != ';';

I intend this to be a `ReferenceClassDesc`-specifc check. I think moving 
`isPrimitiveArray` as a private method in `ReferenceClassDesc` would be better, 
as the `startsWith("[")` is already implied (at least before valhalla, 
non-array, i.e. class or interface descriptors must end with a semicolon.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13252#discussion_r1153916176

Reply via email to