std.variant benchmark
jerro
a at a.com
Fri Aug 3 01:45:10 PDT 2012
>> I profiled it and found out much of the time is spent inside
>> TypeInfo.opEquals being called from tryPutting. So I tried
>> replacing "!=
>> typeid" in tryPutting with "!is typeid". That brought the time
>> from 2.8 s
>> down to 0.12 on my machine. I don't know if that is the proper
>> solution,
>> since I don't know if typeid can ever return two TypeInfo
>> objects that
>> aren't the same but are equal (I haven't used typeid and
>> TypeInfo much
>> before). The fib function here does return correct result
>> after doing that,
>> though.
>>
>
> Wow! Now that's an impressive improvement. If TypeInfo
> instances are unique
> for every type, then we should be good to go!
I've tried Dmitry's fork now (he optimized opArithmetic to not do
as many calls to fptr) and it's even a little faster (1.01 s for
100000 iterations). Replacing != with !is in Dmitry's fork speeds
it up a little bit more (0.935 s for 100000 iterations).
More information about the Digitalmars-d
mailing list