News for hackers. Stuff that matters.
Re:Tracing JITs and modern CPUs by mafribe on Friday July 24, 2015 @01:54PM (#9943870)
As far as I'm aware partial evaluation JITs like Graal/Truffle have atrociously bad warmup times. Warmup is the phase before the optimised code is ready to be executed. This is already a problem for tracing JITs, but is supposedly worse for partial evaluation JITs. All papers I have seen measure JIT performance post warmup.
Re:Tracing JITs and modern CPUs by pron on Friday July 24, 2015 @02:00PM (#9943906)
Right, and this is why people say that the JVM is slow to start. It actually starts up pretty fast (a hello world program starts the JVM, reads the class file from a JAR archive, runs it and terminates in under 80ms), but it takes a while to achieve max performance.

This is hardly a problem for server apps, and a potentially serious issue for client code like JavaScript on a web page.

HotSpot has recently moved to a tiered-compilation scheme, where a fast compiler produces unoptimized code quickly, which continues to collect metrics for the profile-guided optimization, and the optimizing compiler kicks in later, once enough profiling information has been collected.

Re:Tracing JITs and modern CPUs by mafribe on Friday July 24, 2015 @02:07PM (#9943957)
The JVM is not a tracing JIT compiler. Tracing is a very slow operation. Hence the warmup problem is substantially worse for tracing JITs.

I saw figures for warmup in tracing JITs that were so hillariously bad, that I thought they must be a typo.

People I know are currently writing a paper on this subject. I hope it will come out in the next 2 or 3 months. That should put our discussion, and the warmup performance of tracing JITs, on a firmer basis.

Re:Tracing JITs and modern CPUs by loganhough on Friday July 24, 2015 @02:29PM (#9944151)
> The JVM is not a tracing JIT compiler

He didn't claim or imply it was.

> Tracing is a very slow operation.

Wait a second - you were just saying that PE was slow. Now you are saying that tracing is slow instead?

> Hence the warmup problem is substantially worse for tracing JITs.

This is contrary to everything I've seen in the research. Tracing JITs like LuaJIT and PyPY as fast to warm up compared to method JITs and PEs.

Re:Tracing JITs and modern CPUs by mafribe on Saturday July 25, 2015 @02:41AM (#9946786)
I said, or was trying to say that DPE and tracing have bad warmup.

    Tracing JITs like LuaJIT and PyPY as fast to warm up compared to method JITs and PEs.
I have heard the opposite about PyPy, which is meta-tracing.

I'm a bit uncomfortable with saying "I have heard ..." As far as I'm aware there is no actual published research on this question. But there will soon be, so I would like to withdraw from this debate until I have read that research.