howto count lines - fast

Daniel Kozak via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue May 30 14:16:24 PDT 2017


I do not know this is my first attempt and it is almost same fast as wc 
on my pc:

int main(string[] args)
{
     import std.stdio : writeln, writefln, File;
     import std.array : uninitializedArray;

     auto f = File("data");
     size_t c = 0;
     auto buffer = uninitializedArray!(ubyte[])(1024);
     foreach (chunk; f.byChunk(buffer))
     {
         foreach (ch; chunk)
             if (ch == '\n')
                 ++c;
     }
     writeln(c);
     return 0;
}

And I belive it could be faster when iopipe is used


Dne 30.5.2017 v 22:02 Nitram via Digitalmars-d-learn napsal(a):
> After reading 
> https://dlang.org/blog/2017/05/24/faster-command-line-tools-in-d/ , i 
> was wondering how fast one can do a simple "wc -l" in D.
>
> So i made a couple short implementations and found myself confronted 
> with slow results compared to "/usr/bin/wc -l".
>
> How would a implementation look like in D, which is fast?
>



More information about the Digitalmars-d-learn mailing list