Canary通道Android P支持X86到AMR的翻译功能( 二 )

\n

为什么带有ARM到x86的x86系统转换更快?

\n

由于利用了HAXM和KVM之类的CPU虚拟化技术 , 基于x86的系统映像速度很快 , 而ARM系统映像由于必须模拟整个堆栈(尤其是任何系统代码以及与内存管理单元有关的任何内容 , 因此速度较慢)要慢得多 。 MMU) , 这使基本内存读/写指令非常非常慢 。

\n

另一方面 , 借助x86系统以及Google的ARM到x86转换技术 , 我们可以避免昂贵得多的系统和MMU仿真 , 而仅转换用户级代码 。 这是一个巨大的胜利 , 因为它允许内存访问以接近原始速度的方式进行 , 就像在x86上一样 , 其开销仅限于与指令转换本身相关的位(因此 , 仅对CPU绑定的应用程序有意义(大多数应用程式受到记忆体频宽或I / O限制)) 。

\n

已知的问题

\n

不支持在翻译环境中运行的ARM本机库中设置断点 。 这是因为实际上最终运行的代码将是x86代码 , 很难映射到LLDB中的原始ARM代码 。

\n

由于这项技术正在获得新的曝光和使用案例 , 因此某些应用程序功能可能无法按预期运行 。 请通过Issuetracker让我们知道任何问题 。

推荐阅读