stride in slices
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Tue Jun 5 14:38:12 UTC 2018
On 06/04/2018 07:08 PM, Ethan wrote:
> On Monday, 4 June 2018 at 18:11:47 UTC, Steven Schveighoffer wrote:
>> BTW, do you have cross-module inlining on?
>
> Just to drive this point home.
>
> https://run.dlang.io/is/nrdzb0
>
> Manually implemented stride and fill with everything forced inline.
> Otherwise, the original code is unchanged.
>
> 17 ms, 891 μs, and 6 hnsecs
> 15 ms, 694 μs, and 1 hnsec
> 15 ms, 570 μs, and 9 hnsecs
>
> My new stride outperformed std.range stride, and the manual for-loop.
> And, because the third test uses the new stride, it also benefited. But
> interestingly runs every so slightly faster...
BTW I've had this thought for a long time to implement stride with a
compile-time step... never got around to implementing it. It would
easily generalize the existing code without too much work. Essentially
the step would be a template parameter; if that is 0, then use a
run-time stride. Most of the code works unchanged.
More information about the Digitalmars-d
mailing list