On Tuesday, 22 July 2014 at 08:10:31 UTC, Russel Winder via Digitalmars-d wrote:
On Tue, 2014-07-22 at 06:35 +0000, Paulo Pinto via Digitalmars-d wrote:
[…]
Yes it can, if developers bother to do PGO + AOT instead and learn the compiler flags.

I used to have a stronger opinion on JIT, but given how many JITs perform and do not actually use the hardware as they, in theory could, JIT tend to only be an advantage for dynamic languages not strong typed ones.

With JIT, writing the code in a way that makes the JIT compiler happy is a lost battle, as it depends on the exact same JIT implementation being available on the deployment system.

I think you have to make good on this claim since the JVM JIT is
intended for Java which is supposedly a static, strongly typed language.

The JVM JIT was originally targeted to SELF, not Java.

Moreover, evidence from Groovy is the JVM JIT provides only patchy benefit. The biggest benefit all round is invokedynamic for both static and dynamic languages. Java 8 would be nothing without invokedynamic.


Functional programming languages have AOT compilers and they perform quite well, almost to C level in many use case cases.

As for Groovy, I always felt the implementation was always lacking in performance.

I avoid touching Gradle.


But maybe we should take this off this list as it is way off topic.

Clearly we can use JMH for benchmarking. I have a couple of codes I
could use to try things out.

So:

1. How to compile and execute to get full AOT *and* switch off the JIT. 2. How to compile and execute to get no AOT and have JIT on full.

then we can begin to compare.

I was discussing JIT vs AOT in abstract.

To be able to perform such a tests you need:

- A programming language X
- The state of the art JIT compiler implementation for the given language - The state of the art AOT compiler implementation for the given language

I know a few commercial AOT compilers for Java, not sure which one would be the best one to choose.


But the proof is Microsoft adding .NET Native to their toolchain, Google replacing Dalvik with AOT and Oracle has added AOT compilation (Substract) to Graal, the candidate to Hotspot replacement.

So apparently they all agree AOT still wins in many scenarios.

--
Paulo

Reply via email to