my first D program (and benchmark against perl)

Andrea Fontana via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Nov 11 06:26:28 PST 2015


On Wednesday, 11 November 2015 at 13:32:00 UTC, perlancar wrote:
> While I am quite impressed with how easy I was able to write D, 
> I am not so impressed with the performance. Using rdmd (build 
> 20151103), the D program runs in 17.127s while the Perl version 
> runs in 11.391s (so the D version is quite a bit *slower* than 
> Perl's). While using gdc (Debian 4.9.2-10), I am able to run it 
> in 3.988s (only about 3x faster than Perl's version).
>
> I understand that string processing (concatenation, allocation) 
> is quite optimized in Perl, I was wondering if the D version 
> could still be sped up significantly?

Did you try rdmd -O -noboundscheck -release yourscript.d ?

You should try using appender!string rather than concatenate 
(http://dlang.org/phobos/std_array.html#.Appender) using capacity 
(http://dlang.org/phobos/std_array.html#.Appender.capacity) to 
improve performace.

You should also switch from for to foreach.

Andrea



More information about the Digitalmars-d-learn mailing list