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).

Reply via email to