返回介绍

博客

帮助文档

离线指令优化

发布于 2024-08-03 14:42:57 字数 3430 浏览 0 评论 0 收藏 0

:::warning

离线指令优化技术正开发中,目前仅可使用标准指令优化技术。 :::

离线指令优化(Offline Instruction Optimization,简称OIO)离线将原始IL指令转换为自定义的寄存器指令。 由于离线没有编译性能限制,可以使用更丰富的编译优化技术,极大提升了解释模块的性能。

优化后的指令执行性能整体提升100%-1000%(没看错,10倍以上)甚至更高,尤其是数值指令整体提升近300%。 而且由于已经提前转换,加载和指令翻译过程更快,卡顿更小。

离线指令优化技术支持代码加固方案中的虚拟化技术,极大提升了代码安全。

实现

离线指令优化技术包含了以下优化技术:

  • 彻底的无用栈指令消除。消除掉所有不必要的栈操作
  • 窥孔优化
  • 常量复制优化
  • 局部复制传播优化
  • 全局复制传播优化
  • 解释函数inline
  • AOT函数inline(专利技术)
  • 提供更多instinct指令,大幅提升常见的指令组合性能
  • 条件检查消除技术。消除不必要的空指针检查、类型强转检查、数组越界检查
  • CheckOnce运行时检查动态消除优化。例如访问静态成员变量的指令,在第2次执行时不再检查类型是否已经初始化过
  • 其他优化

性能

TODO。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文