On 8/2/2011 5:00 AM, Jason House wrote:
The post says they did "dmd -O". They did not mention "-inline -noboundscheck
-release". There may be extra flags that are required.

Often when I see benchmark results like this, I wait to see what the actual problem is before jumping to conclusions. I have a lot of experience with this :-)

The results could be any of:

1. wrong flags used (especially by inexperienced users)

2. the benchmark isn't measuring what it purports to be (an example might be it is actually measuring printf or malloc speed, not the generated code)

3. the benchmark is optimized for one particular compiler/language by someone very familiar with that compiler/language and it exploits a particular quirk of it

4. the compiler is hand optimized for a specific benchmark, and the great results disappear if anything in the source code changes (yes, this is dirty, and I've seen it done by big name compilers)

5. the different benchmarks are run on different computers

6. the memory layout could wind up arbitrarily different for the different compilers/languages, resulting in different performance due to memory caching

etc.

Reply via email to