3 ms·
Tracing can be good as icing on the cake, but it alone won't get you good performance. With just the interpreter (super slow) and TraceMonkey (super fast, when
by nnethercote 15y ago
Tracing can be good as icing on the cake, but it alone won't get you good performance. With just the interpreter (super slow) and TraceMonkey (super fast, when it worked) the end result is still pretty slow, and perf can be really uneven.
The picking of types at record-time in the tracer doesn't always work well. In particular, you can end up generating code for ints when really you have floats, or vice versa, which gives bad perf. Likewise arrays-of-ints/arrays-of-floats.
TraceMonkey was also written in a great hurry, which partly explains the hairball-ness.