On Wednesday, 8 June 2016 at 22:32:49 UTC, Ola Fosheim Grøstad
wrote:
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.
I wouldn't put too much emphasis on that benchmark as the
implementations appear different? Note that Felix compiles to
C++, yet beats C++ in the same test? Yes, Felix claims to do
some high level optimizations, but doesn't that just tell us
that the C++ code tested wasn't optimal?
While I appreciate that someone puts the time and effort in such
benchmarks, what do they really say?
In the brainfuck example the most expensive function call is the
hash function, which is not needed at all!
We can just allocate an array on demand and we beat the Cpp
implemention by the factor of 2! (and use less memory).
https://github.com/kostya/benchmarks/pull/87
(n.b. that this small change makes D by far the fastest for this
benchmark)
So what do we learn?
1) Don't trust benchmarks!
2) D's dictionary hashing should be improved