Tracing JIT Compiler - Lukas Larsson
Created on 2020-08-23T04:34:14.854040
- Collects runtime traces until the buffer fills up, collides with another function marked for tracing, exits the hot path, (heuristics basically.)
- Does not compile traces for a while.
- Traces in the same hot path create branches when they diverge; BEAM JIT is willing to consider traces with a limited number of break-away variants.
- Traces include the amount of times a branch point is encountered and how many times it is rejected.
- Optimizer will not compile paths that are taken "less than 5% of runs."
- BEAM JIT doubles the speed of a fibonacci test, but is still 50% slower than the AOT compiler.