optional reduction of overhead for classes
clayasaurus
clayasaurus at gmail.com
Mon Apr 17 17:29:58 PDT 2006
Tom S wrote:
> clayasaurus wrote:
>> class EntityData
>> {
>> float x, y;
>> }
>>
>> ------------------------------------------------------------------------
>>
>> My question is, how much memory does EntityData use before allocation
>> (4-bytes?), and how much does it use after allocation (4+4+4 bytes
>> total?).
>
> Well, before allocation, your EntityData doesn't really exist, only a
> null reference, which takes 4 bytes on 32 bit systems.
IIRC, you can
> check the size of an object thru .classinfo.init.length.
Thanks for that :) After I allocate it, it says it uses 16 bytes. Since
the size of a float is only four bytes and the null reference is 4
bytes, would that be 4+4+4 = 12? I wonder where the other 4 bytes come
from, maybe typeinfo?
> If you want to avoid overhead, consider making EntityData a struct, to
> which you'd store a pointer.
Ok, you mean like MyStruct *str = new MyStruct?
Thanks.
~ Clay
More information about the Digitalmars-d-learn
mailing list