5 ms·
> and even for your lightweight game consoles (Firefly Zero). On that note, does the "shape" of the benchmarks change on lower-powered hardware in any way? (As
by vanderZwan 14d ago
> and even for your lightweight game consoles (Firefly Zero).
On that note, does the "shape" of the benchmarks change on lower-powered hardware in any way? (Aside from the obvious change if memory overhead requires switching from direct to indirect threaded code)
- herobird 14d agoFrom my experiences indirect-threading and direct-threading are only ~10-15% of performance apart. However, the switch-loop dispatch that is used on platforms that do not support tail-calls can be a lot slower. However, the slowdown highly depends on the underlying hardware. For example, on Apple Silicon the slow-down is huge, whereas on Intel the slowdown isn't that drastic. Unfortunately, I haven't tested any of the Wasm runtimes on low-powered hardware so far but that would be a great addition and I'd be extremely interested in how the fast interpreters such as Wasmi, Wasm3 and Stitch perform there. From what I know Wasm3 was optimized for those targets, so it might fare well and if Wasmi does not yet perform well there it should be fairly easy to catch up since the architectural foundation is similar. Also, Wasmi's auto-dispatch feature that automatically detects if tail-calls can be used is very conservative. We might be able to cover more targets in the future with it, thus avoiding the slower switch-loop for more platforms eventually. From the people that use Wasmi on lower-powered hardware (e.g. the Firefly-zero people) they seem to be very happy with Wasmi's performance so far.