3 ms·
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 e
by mafribe 11y ago
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.
- pron 11y agoRight, 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.
- mafribe 11y agoThe 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.
- loganhough 11y ago> 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.
- mafribe 11y agoI 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.