On Monday, 11 May 2015 at 23:32:48 UTC, Dzhon Smit wrote:

The point was to compare the performance of nearly identical pieces of code in D and in CL. However, when I compile this idiomatic sample with `dmd fib2`, I get

$ time ./fib2
0

real    0m2.226s
user    0m2.223s
sys     0m0.003s

which is still slower.

we already know dmd doesn't produce the fastest code, and obviously you are not comparing languages but a complex set of things particularly compilers. nobody who cares about performance will stick with dmd without trying alternatives (and these are free, readily available alternatives not special things you need to pay a fortune for as with some of the 'java GC can be realtime' guys argued indicated as having relevance to the commercial choice in ordinary circumstances to use java or not).

if one wanted to spend a couple hundred k bucks on rewriting the codegen, I am sure you would see dmd fast again, but what would that demonstrate about D the language?

it's fair play to compare naive code using fast compilers, but just like micro benchmarks, one shouldn't make more of the result than may be justified. ie the real question is in practical use cases (bearing in mind you are going to pick one or two languages and stick with them, figuring out the tricks with experience), given reasonable effort, what is relative performance like? and I doubt anyone is going to not use D because "it's slower than common lisp".

what I have read of the facebook experience (although hardly a controlled experiment by a neutral observer) is intriguing from that perspective.

Reply via email to