Reducing the cost of autodecoding

Ilya Yaroshenko via Digitalmars-d digitalmars-d at puremagic.com
Wed Oct 12 09:08:43 PDT 2016


On Wednesday, 12 October 2016 at 16:07:39 UTC, Ilya Yaroshenko 
wrote:
> On Wednesday, 12 October 2016 at 13:53:03 UTC, Andrei 
> Alexandrescu wrote:
>> So we've had a good run with making popFront smaller. In ASCII 
>> microbenchmarks with ldc, the speed is indistinguishable from 
>> s = s[1 .. $]. Smaller functions make sure that the impact on 
>> instruction cache in larger applications is not high.
>>
>> Now it's time to look at the end-to-end cost of autodecoding. 
>> I wrote this simple microbenchmark:
>>
>> =====
>> import std.range;
>>
>> alias myPopFront = std.range.popFront;
>> alias myFront = std.range.front;
>>
>> void main(string[] args) {
>>     import std.algorithm, std.array, std.stdio;
>>     char[] line = "0123456789".dup.repeat(50_000_000).join;
>
> For fair test line should be feet into L1 cache. --Ilya

EDITL For fair test the line should be in the L1 cache. --Ilya



More information about the Digitalmars-d mailing list