[Development] Changing container privates again

Thiago Macieira thiago.macieira at intel.com
Mon Jun 11 16:11:33 CEST 2012


On segunda-feira, 11 de junho de 2012 16.00.58, João Abecasis wrote:
> Thiago Macieira wrote:
> >> Following Olivier's suggestion I think it might be beneficial to have
> >> alloc
> >> unconditionally in the base class, even if it is not being used at times.
> >> If nothing else, it saves padding. Additionally, deleter function and
> >> token
> >> would be more generally useful if they can be used with the alloc member.
> > 
> > Yes, if we move the alloc member to the main struct, then it will simply
> > occupy the space currently used for padding. The total overhead for an
> > allocation would be 24 bytes on 64-bit systems. Since glibc's allocator is
> > 16- byte aligned, this means our data is always 8 bytes off.
> > 
> > In my opinion, that's actually worse than having a larger header.
> 
> But that's what we currently have and wouldn't change with you suggestion
> above, right?

We currently have 24 bytes. With my changes, it goes to 32 bytes, which is the 
second most ideal value. The ideal one would be 16 bytes.

> Would it be worth to set the minimum alignment for the data as 16-bytes, at
> the expense of padding we explicitly add in QArrayData::allocate? (Since
> this decision can be done inside that function it would have no impact on
> ABI)

QArrayData::allocate can take that decision. In fact, that was in my plans for 
some future improvement.

But that means we'll use 32 bytes anyway for all allocations, in any platform.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
     Intel Sweden AB - Registration Number: 556189-6027
     Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20120611/fb225245/attachment.sig>


More information about the Development mailing list