AMAZINGINDEX.COM 日报快照
47.6
VOL. 2026.06
2026.06.30
← 返回 2026.06.30 日报
日报快照 · Daily Snapshot
NO. 017

WASM JIT 绕过 iOS 编译禁令

#ARTICLE HackerNews 2026.06.30
推荐指数 46.0 NO. 017 · 2026.06.30
发布2026/06/29Score132Comments14

作者将 Game Boy 指令即时编译为 WASM 而非本地代码,在浏览器沙箱内实现 JIT,性能反超纯解释器。这为 iOS 等禁止原生 JIT 的平台提供了绕过思路,模拟器开发者可重点关注。

iOS 的 JIT 禁令一直是模拟器社区的硬约束,之前大家的解法要么是用解释器硬扛性能损失(DolphiniOS 的纯解释器模式帧率惨不忍睹),要么是侧载后利用企业证书搞 altJIT 这种灰色方案。这篇文章走了一条更干净的路:把 guest CPU 指令翻译成 WASM,让 WebKit 的合法 JIT 替你干活。

关键洞察在于 WASM 作为 IR 的抽象层级选得很准——比直接生成 ARM64 机器码安全可控,又比纯解释执行少了一层 dispatch 开销。实测 GB 模拟器性能反超原生解释器,说明 WASM JIT 的优化管道已经足够成熟。Dolphin 团队如果要把这招搬到 GameCube/Wii 级别,挑战在于 WASM 的内存模型和 SIMD 能否撑住更复杂的 CPU/GPU 模拟,但方向已经验证了。

做跨平台模拟器、尤其是想在 App Store 正规上架的团队,应该把这个思路纳入技术选型。另外 WebAssembly 作为「受控 JIT 载体」的潜力不止于模拟器,任何需要在受限环境跑动态生成代码的场景(比如边缘计算、TEE)都可能复用这套模式。

意见分歧 11 条评论

核心争论:WASM JIT 是巧妙绕过还是过度工程,性能是否真正实用

milch

Very interesting article. Would've been fun to see the comparison between native interpreter & JIT-on-WASM on iOS as well

iberator

yet on real old hardware it would be 20x slower in real life. same as all native javascript junk - its fast, but non usuable on older hardware

switchbak

Good thing I'm not running games on my 4gb Pentium 4 then.

替代方案: 纯解释器本地原生模拟器静态重编译(NES)
查看原文 →