Re:Performance of modern Java on data-heavy workloads
by MaxBarraclough on Tuesday June 09, 2020 @04:26PM
(#23470527)
A mixed approach can be done, yes. If dynamic classloading is needed, you need to bundle a JIT as well (or at least a traditional interpreter). Excelsior JET has used this hybrid approach for years. [0] I imagine it should be possible to omit the JIT if it can be determined that it's not needed.
Re:Performance of modern Java on data-heavy workloads
by haxen on Tuesday June 09, 2020 @04:21PM
(#23470457)
If you ever try to write a bash script that calls a Java program in a tight loop, you'll know the limitations of a fat interpreting runtime with JIT compilation. Another relevant use case is the Stateless Lambda server-side architecture.
Re:Performance of modern Java on data-heavy workloads
by MaxBarraclough on Tuesday June 09, 2020 @04:31PM
(#23470566)
I believe Java (OpenJDK at least) is slow to start even if you disable the JIT and go with pure interpretation, and even if you disable runtime bytecode verification. It's just generally heavyweight and slow to get off the ground.
I imagine JIT compilation should help with this, as you suggest.
Re:Performance of modern Java on data-heavy workloads
by MaxBarraclough on Wednesday June 10, 2020 @03:19PM
(#23480950)
Oops, too late to edit, but I meant ahead-of-time compilation should help with this
I understand JIT compilation is pretty advanced these days. Wouldn't this go against it? Or maybe the approach can be mixed, but if so, you'd still need the runtime environment ("the JVM").