Looking for documentation of D's lower-level aspects.

Marco Leise Marco.Leise at gmx.de
Wed Nov 9 06:42:40 PST 2011


Am 24.10.2011, 03:57 Uhr, schrieb Sean Silva <chisophugis at gmail.com>:

> For example, if you look in the LLVM source tree, you'll see that they
> bend over backwards to avoid heap allocations. For example, in some
> cases, std::vector causes too much heap traffic so they have
> SmallVector which preallocates a certain amount of storage *inside* of
> the object itself in order to avoid heap traffic if the number of
> elements doesn't exceed some predetermined amount. [...]
> But the thing is that in D, it is possible to write an
> easy-to-use vector for which it is a one-liner to switch between GC
> heap-allocated vector object, by-value vector, preallocated internal
> vector (like SmallVector), and beyond!

Then write your special vector class. I'm sure you can optimize it more  
than anything that Phobos could ever offer. My point is that you know  
exactly what you want for your special use case and something in a  
standard library should not be biased or deviate too much from the 'book  
version' of a container. If anything I would support the inclusion of Judy  
Arrays, or other specialized data structures, that have a name that rings  
a bell.


More information about the Digitalmars-d-learn mailing list