[9] RFR (XXS): 8058309: Unsafe.defineAnonymousClass deoptimization checks scale devastatingly poorly

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Thu Sep 18 09:26:44 UTC 2014


Remi,

Good question!

I looked into the code and my understanding is that they don't have the 
same problem as compiled LambdaForms.

Proxy doesn't have instance methods (only public/private static), so no 
unique_concrete_method dependencies in Proxy context.

Similar situation with Method: SerializationConstructorAccessorImpl, 
ConstructorAccessorImpl, MethodAccessorImpl, their supertypes, and 
interfaces they implement declare megamorphic abstract instance methods. 
So, I don't expect any unique_concrete_method dependencies in these 
contexts as well.

But it's mostly an educated guess, it'd be great to see some data 
confirming my observations.

Best regards,
Vladimir Ivanov

On 9/17/14, 10:53 PM, Remi Forax wrote:
>
> On 09/17/2014 06:55 PM, Vladimir Ivanov wrote:
>> >> It's not specific to U.dAC(). Regular class loaders can hit similar
>>>> problem as well.
>>>
>>> Even better, this is even more generic.
>> Please, update bug synopsis then.
>>
>>>> If you want to use 8058309 for dependency tracking improvments in VM,
>>>> let me know. So far, I got an impression it is about LFs & JSR292
>>>> mostly.
>>>
>>> Yes, please commit the LF fix under the different bug ID, if that is not
>>> a hassle?
>> Done:
>>     8058661: Compiled LambdaForms should inherit from Object to
>> improve class loading performance
>>     https://bugs.openjdk.java.net/browse/JDK-8058661
>
> I wonder if the Proxy generation code (j.l.r.Proxy) and the method
> accessor generation code (j.l.r.Method) doesn't have the very same issue.
>
>> Best regards,
>> Vladimir Ivanov
>
> Rémi
>
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


More information about the mlvm-dev mailing list