review request (L): 7030453: JSR 292 ClassValue.get method is too slow

Rémi Forax forax at univ-mlv.fr
Sun Dec 4 17:03:13 PST 2011


On 12/05/2011 01:27 AM, Joe Darcy wrote:
> On 12/4/2011 2:13 PM, Rémi Forax wrote:
>> On 12/04/2011 08:38 PM, Joe Darcy wrote:
>>> Hi John,
>>>
>>> Are there alternatives to adding two new fields to java.lang.Class?  
>>> I assume most Class'es won't have ClassValue information associated 
>>> with them.
>>>
>>> -Joe
>>
>> If you use Groovy, JRuby or Nashorn in your code, all visible classes 
>> will use this two fields.
>>
>> Any alternative will slow down the access to the class value.
>
> In the mean time, all the non-Groovy, non-JRuby, non-Nashorn, etc. 
> uses of class Class and all the classes not visible in those 
> environments when they are being used will be larger.
>
> Adding the fields may be the right time/space trade-off, but I think 
> the point merits some discussion given how many Class objects get 
> created and the relative proportion of Java executions where 
> ClassValue is currently used.
>
> The more reasonable time/space trade-off can change over time of course.
>
> -Joe
>

I agree but as I said, in that case, I think it's better to take a look 
to the big picture
and see if not only class values fields but also annotations related 
fields or reflection related fields
can be moved.

Also, if we don't provide a fast ClassValue, people will create their 
own concurrent weak hash map
using class as key that will be worst because it seems that only few 
people knows
how to do that right. Personally, I don't.

Rémi



More information about the mlvm-dev mailing list