Comment by hinkley
1 year ago
I’ve heard this went out of fashion a while back. That branch predictors got good enough that it’s not necessary anymore.
But I wonder if that stays true as the size of the interpreter increases.
1 year ago
I’ve heard this went out of fashion a while back. That branch predictors got good enough that it’s not necessary anymore.
But I wonder if that stays true as the size of the interpreter increases.
My most recent data says it's still relevant.
It might not matter for very small interpreters, but it does matter for anything substantial.
Definitely worth remeasuring though.
Threaded dispatch is worth 15-30% in Wizard's fast interpreter.
I would advocate that anything substancial is better off with a JIT, even a dumb one e.g. template JIT, we aren't dealing with 8 bit home computers memory constraints any longer, except in some IoT deployments.
But then you’ll still have an interpreter for fast start.
That’s why JSC and V8 have interpreters as their bottom tiers.
And you’ll also want an interpreter if you don’t have permissions to JIT, which is common these days.
2 replies →