Small Buffer Optimization for string and friends
Vladimir Panteleev
vladimir at thecybershadow.net
Sun Apr 8 02:46:27 PDT 2012
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.
More information about the Digitalmars-d
mailing list