Optimizations and performance

qznc via Digitalmars-d digitalmars-d at puremagic.com
Thu Jun 9 01:31:37 PDT 2016


On Wednesday, 8 June 2016 at 22:19:47 UTC, Bauss wrote:
> D definitely needs some optimizations, I mean look at its 
> benchmarks compared to other languages: 
> https://github.com/kostya/benchmarks
>
> I believe the first step towards better performance would be 
> identifying the specific areas that are slow.
>
> I definitely believe D could do much better than what's shown.
>
> Let's find D's performance weaknesses and crack them down.

The previous step is to find a good benchmark. This one isn't.

For example, you should clarify what kind of code you want: Short 
idiomatic elegant code? Or rather optimized to max using every 
trick you can no matter the length?

Carefully check what the benchmark actually measures. It should 
not measure IO or pthread context switching for example, because 
that is not really a distinguishing factor between languages.

Also make sure the benchmarks are fair. For example, "threadring" 
in the shootout measures pthread context switching, except 
languages like Erlang and Haskell, which use user-level 
scheduling. This an apples to oranges comparison.

Sometimes the decision is not clear. Do you want a benchmark of 
regular expressions? It makes sense to compare D's and Rust's 
standard library to others, but many (Python, Ruby, etc) will use 
nearly the same C code underneath.

Another aspect is the statistical stuff. At least measure the 
deviations. Better, do some hypothesis tests.


More information about the Digitalmars-d mailing list