std.variant benchmark
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Sun Jul 29 11:59:04 PDT 2012
On 7/29/12 10:43 AM, Dmitry Olshansky wrote:
> I'm horrified. Who was working on std.variant enhancements? Please chime
> in.
I guess you just volunteered! When I looked at it this morning I noticed
a few signs of bit rot, e.g. opAssign returns by value and such. (Only
planting a "ref" there improves performance a good amount.)
Variant has a simple design with (in case of int) an int and a pointer
to a function. Many of its operations incur an indirect call through
that pointer. This makes operations slower than the time-honored design
of using an integral tag and switching on it, but offers in return the
ability to hold any type without needing to enumerate all types explicitly.
We can use the pointer to function as a tag for improving performance on
primitive types.
Andrei
More information about the Digitalmars-d
mailing list