5 ms·
Indeed, max bytecode count (FreqInlineSize and MaxInlineSize) and inlining depth (MaxInlineLevel). Your GC choice will also slightly modify the inlining decisio
by JanecekPetr 5y ago
Indeed, max bytecode count (FreqInlineSize and MaxInlineSize) and inlining depth (MaxInlineLevel). Your GC choice will also slightly modify the inlining decisions, and then obviously GraalVM will be completely different.
- kaba0 5y agoBut inlining will not cause better performance in every case, will it?
- JanecekPetr 5y agoCorrect! Inlining obviously costs CPU, code cache space, and makes the receiver method bigger so that it's less likely it will be inlined itself. If there ever is a decompilation occuring, the inlining efforts were pretty much wasted.
- masklinn 5y agoHowever it must be pointed out that inlining enables further optimisations. The tradeoffs are more complicated for a jit, but for an aot compiler it’s one of the most important optimisations in the pipeline.
- vips7L 5y agoIs there a full list of the differences between the graal jit and C2? I was only aware of graal having better partial escape analysis over C2's conservative EA.
- JanecekPetr 5y agoIt's simply a completely different implementation. Some of the optimiization passes are the same, obviously, but overall it simply performs ... differently.