3 ms·
A JIT with dynamic optimization for these traditionally-AOT-compiled languages has little headroom to improve the code, whereas for more dynamic languages, ther
by titzer 4y ago
A JIT with dynamic optimization for these traditionally-AOT-compiled languages has little headroom to improve the code, whereas for more dynamic languages, there's a lot of headroom.
Runtime profiling has a cost, and the benefit has to outweigh that cost. Collecting receiver type profiles in order to speculatively inline has a big payoff in, e.g. Java or JavaScript, but probably not C++ or Rust, where programs have less polymorphism because programmers routinely avoid polymorphism in hot parts of the code.