Why is D slower than LuaJIT?

Walter Bright newshound2 at digitalmars.com
Wed Dec 22 17:27:58 PST 2010


bearophile wrote:
> Surely Lua looks like a far worse language regarding optimization
> opportunities. But people around here (like you) must start to realize that
> JIT compilation is not what it used to be. Today the JIT compilation done by
> the JavaVM is able to perform de-virtualization, dynamic loop unrolling,

The Java JIT did that 15 years ago. I think you forget that I wrote on a Java 
compiler way back in the day (the companion JIT was done by Steve Russell, yep, 
the Optlink guy).

> inlining across "compilation units",

dmd does cross-module inlining.

> and some other optimizations that
> despite are "not language issues" are not done or not done enough by static
> compilers like LDC, GCC, DMD. The result is that SciMark2 benchmark is about
> as fast in Java and C, and for some sub-benchmarks it is faster :-)

Inherent Java slowdowns are not in numerical code. The Java language isn't 
inherently worse at numerics than C, C++, D, etc. Where Java is inherently worse 
is in its excessive reliance on dynamic allocation (and that is rare in numeric 
code - you don't "new" a double).



More information about the Digitalmars-d mailing list