Small Buffer Optimization for string and friends

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sun Apr 8 07:49:23 PDT 2012


On 4/8/12 4:46 AM, Vladimir Panteleev wrote:
> On Sunday, 8 April 2012 at 05:56:36 UTC, Andrei Alexandrescu wrote:
>> Walter and I discussed today about using the small string optimization
>> in string and other arrays of immutable small objects.
>>
>> On 64 bit machines, string occupies 16 bytes. We could use the first
>> byte as discriminator, which means that all strings under 16 chars
>> need no memory allocation at all.
>
> Don't use the first byte. Use the last byte.
>
> The last byte is the highest-order byte of the length. Limiting arrays
> to 18.37 exabytes, as opposed to 18.45 exabytes, is a much nicer
> limitation than making assumptions about the memory layout.

Hehe. Good idea. On big endian machines the last byte is the ticket!

Andrei



More information about the Digitalmars-d mailing list