Comment by pizlonator
1 year ago
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.
1 year ago
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.
The only place where there isn't a JIT permission are iDevices, and we all know that security isn't really the main reason.
Sure modern security concerns make use of W^X, and implementations have adapted accordingly.
Android has an interpreter hand written Assembly for fast start since Android 7, with a jump into JIT compilation as fast as possible, because it has been proven to be a better solution in the field.
The point being that a fast start doesn't really require an interpreter to win out micro-benchmarks game, rather be good enough until the tiered JITs step in.
1 reply →