Review Request (S) 8005994: Method annotations are allocated unnecessarily during class file parsing
Stefan Karlsson
stefan.karlsson at oracle.com
Tue Jan 15 09:42:01 PST 2013
On 15 jan 2013, at 16:30, Coleen Phillimore <coleen.phillimore at oracle.com> wrote:
>
> Stefan, This change looks good.
Thanks.
> How much footprint does this save?
For every class without annotations we save four arrays of size:
sizeof(Array<AnnotationArray*>) + (num_methods - 1) * sizeof(AnnotationArray*)
and we don't have to allocate the two Annotation objects and save:
2 * sizeof(Annotations)
Do you want some real numbers from a benchmark?
thanks,
StefanK
>
> On 01/15/2013 10:09 AM, Stefan Karlsson wrote:
>> On 01/15/2013 02:38 PM, Vitaly Davidovich wrote:
>>> Looks good Stefan.
>>
>> Thanks, Vitaly.
>>
>>> The annotation creation code in classFileParser is really asking for a macro or helper function that does the checks and construction.
>>>
>>
>> I agree. Does anyone in the runtime team have any opinions on this?
>
> Yes, I do. The method annotations (and class ones too but not so much) are a problem for cleaning up metadata on class file parsing failure. I am working on adding these to the inlined tables in ConstMethod, which is another messy area.
>
> Coleen
>
>>
>> thanks,
>> StefanK
>>
>>> Thanks
>>>
>>> Sent from my phone
>>>
>>> On Jan 15, 2013 7:27 AM, "Stefan Karlsson" <stefan.karlsson at oracle.com> wrote:
>>> http://cr.openjdk.java.net/~stefank/8005994/webrev.00/
>>>
>>> HotSpot unnecessarily allocates annotations arrays when they are not needed. This memory regression was introduced when the annotation data structures were changed in the Permgen Removal project.
>>>
>>> This fix:
>>> 1) reintroduces the old null checks
>>> 2) adds a null check before creating the newly introduced method type annotations.
>>> 3) adds a missing null check where the type annotations are used, since they now can be null.
>>>
>>> Testing:
>>> jprt, jdk_lang and type annotations tests
>>>
>>> thanks,
>>> StefanK
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20130115/c602fcf6/attachment.html
More information about the hotspot-runtime-dev
mailing list