std.range.zip performance

dennis luehring dl.soluz at gmx.net
Wed Feb 16 02:18:11 PST 2011


Am 16.02.2011 10:25, schrieb spir:
> On 02/16/2011 03:36 AM, Andrei Alexandrescu wrote:
>>  Initial: 58 seconds.
>>
>>  Eliminated the switch in popFront: 53s.
>>
>>  Replaced emplace with assignment: 23s.
>>
>>  Specialized emplace for non-struct types, reinserted: 23s.
>>
>>  Eliminated the loop in empty (replaced with return ranges[0].empty;): 17s.
>>
>>  I'm sure there are ways to further improve this, but there are a few
>>  difficulties. Each pass through the loop the code must transport values from
>>  the two arrays into a specific format and then distribute them for further
>>  calculation. Then, upon each popFront two words must be touched because arrays
>>  hold pointer+length, not pointer+pointer (as probably would be better since
>>  ranges are around).
>>
>>
>>  Nice analysis!
>
> Bearophile, is clay's zip func lazy. Else, it could explain part of its
> performance, don't you think?
>
> Denis

why should it - what can lazyness help here?


More information about the Digitalmars-d mailing list