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

Aleksey Shipilev aleksey.shipilev at oracle.com
Thu Sep 12 05:06:41 PDT 2013


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.




More information about the lambda-dev mailing list