RFR' [performance] Avoid of usage ASM.Type from InnerClassLambdaMetafactory

Sergey Kuksenko sergey.kuksenko at oracle.com
Thu Sep 12 05:13:47 PDT 2013


ok

On 09/12/2013 04:06 PM, Aleksey Shipilev wrote:
> On 09/12/2013 03:38 PM, Sergey Kuksenko wrote:
>> On 09/11/2013 09:33 PM, Aleksey Shipilev wrote:
>>>  - the named locals in the current code are very telling; can you keep
>>> from inlining them where possible? Does it hurt interpreter performance
>>> to keep locals like in the current code?
>>
>> Could you show exact variables which you are missing. I think guessing
>> from my side would be not effective.
> 
> Example:
> 
>  434  Type argType = samArgumentTypes[i];
>  435  Type targetType = implMethodArgumentTypes[argOffset + i];
>  436  Type instantiatedArgType = instantiatedArgumentTypes[i];
>  437
>  438  visitVarInsn(argType.getOpcode(ILOAD), lvIndex + 1);
>  439  lvIndex += argType.getSize();
>  440  convertType(argType, targetType, instantiatedArgType);
> 
> vs.
> 
>  432  Class<?> argType = samType.parameterType(i);
>  433  visitVarInsn(getLoadOpcode(argType), lvIndex + 1);
>  434  lvIndex += getParameterSize(argType);
>  435  convertType(argType, implMethodType.parameterType(argOffset + i),
> instantiatedMethodType.parameterType(i));
> 
> ...also the body of "if (samIncludesReceiver)".
> 
> -Aleksey.
> 
> 


-- 
Best regards,
Sergey Kuksenko


More information about the lambda-dev mailing list