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