二进制翻译的代价:Windows on Arm 跑 x86 程序实测
来源:chipsandcheese.com — chipsandcheese.com · 30 分 · by matt_d
📋 概述
Chester Lam 实测 Windows 11 的新二进制翻译层 Prism:它把 x86-64 指令翻译成 aarch64 指令,让没有原生移植的 Windows 程序也能在 Arm 上跑,因为让开发者提供 aarch64 版本是个漫长过程,有些程序永远不会被移植。测试平台是 Asus Zenbook A16 上的 Snapdragon X2 Elite Extreme 以及 Azure 上的 Arm 实例。结论相当残酷:Geekbench 7 的 x86-64 版本经过翻译后指令数全面暴涨,除 PDF Viewer 外,规则基本上是 aarch64 指令数约为 x86-64 的两倍;分数上每颗核心都倒退了数代性能。原因在于 x86-64 的复杂寻址与融合乘加在这套映射下会膨胀成几十条指令,性能计数器显示核心只能靠吃下未用满的发射宽度小幅回血。
🔑 核心要点
- Prism 把 x86-64 指令翻译成 aarch64,服务没有原生移植的程序。
- 翻译后指令数普遍膨胀,规则是 aarch64 指令约为 x86-64 的两倍。
- 融合乘加与复杂寻址模式会展开成几十条指令。
- 核心靠填满未用的发射宽度小幅回血,IPC 提升远小于指令膨胀。
- 分数上所有核心都倒退数代性能,但 Snapdragon X2 的宽核仍能胜过 Neoverse N1/N2。
💡 金句
被翻译成 aarch64 的代码里,你几乎能一眼认出原来的每一条 x86-64 指令。
👍 0
👎 0
← 返回 Hacker News 首页