Request for review: 8005895: Inefficient InstanceKlass field packing wasts memory
coleen.phillimore at oracle.com
Fri Jan 11 05:30:29 PST 2013
On 1/10/2013 9:01 PM, Jiangli Zhou wrote:
> Hi Coleen and Aleksey,
> Here is the updated weber that also packs _has_default_methods with
> the misc_flags:
> I've tested the new change with runthese and vm.quick.testlist. The
> jprt test is running and looks good so far.
This looks great. Thank you for making this additional change. We have
at least 3 ways of specifying bitfields/flags in our metadata, but I
want to talk about that on a separate thread.
> On 01/10/2013 10:22 AM, Coleen Phillimore wrote:
>> If I remember correctly, _is_marked_dependent had special atomic
>> properties that made us unable to add them to the misc flags, but
>> that's a good question about _has_default_methods. It could be a
>> misc_flags if there's space in that. There'd be a gap but it would
>> be consistent and we can add more flags in the future.
>> A comment about _is_marked_dependent would be good too.
>> On 01/10/2013 01:11 PM, Aleksey Shipilev wrote:
>>> Why is _has_default_methods not in the enumerated flags there in the
>>> first place?
>>> On 10.01.2013, at 21:57, Jiangli Zhou <jiangli.zhou at oracle.com> wrote:
>>>> Please review the following trivial change for repacking the
>>>> InstanceKlass fields to improve memory efficiency.
>>>> The 'bool' typed variables, '_is_marked_dependent' and
>>>> '_has_default_methods' were grouped with u2 typed fields. For both,
>>>> there were 1-byte padding added on 32bit machine. We can pack those
>>>> two boolean variables together to avoid the padding, then move one
>>>> of the u2 field to be together with '_init_state' and
>>>> '_reference_type'. That saves 4 bytes without any real code change.
More information about the hotspot-runtime-dev