现任大淘宝技术部终端基础技术组工程师,负责多语言编译器/解释器Hyengine 项目。2015 年加入阿里巴巴开始虚拟机开发及相关应用落地,2017 年在手机淘宝端智能团队定制适应客户端的 Python 移植及优化,2020 年开始 Hyengine 项目,探索编译技术对 JavaScript/WebAssembly 等语言性能优化及在移动设备上的应用。

现任大淘宝技术部终端基础技术组工程师,负责多语言编译器/解释器Hyengine 项目。2015 年加入阿里巴巴开始虚拟机开发及相关应用落地,2017 年在手机淘宝端智能团队定制适应客户端的 Python 移植及优化,2020 年开始 Hyengine 项目,探索编译技术对 JavaScript/WebAssembly 等语言性能优化及在移动设备上的应用。
手机淘宝客户端在历史上存在过多种多样的脚本引擎,用于支持的语言包括:JavaScript/Python/WebAssembly/Lua。众多的引擎会共同面临包大小及性能相关的问题,我们是否可以提供一套方案,既能在支持业务需求的前提下,用一个引擎来支持尽可能多的语言,又能较好地兼顾包大小较小和性能优异。为了解决这个问题,我们开始了 hyengine 的探索。
hyengine 为统一移动技术所需的各种脚本语言(WebAssembly/JS/Python 等)执行引擎而生,以轻量级、高性能、多语言支持为设计和研发目标。我们首先对 WebAssembly 进行优化实践,目前已通过对 Wasm3 的 JIT 编译及 Runtime 优化,以极小包体积的代价实现了 WebAssembly 执行速度 2~3 倍的提升,未来还将通过实现自有字节码和 Runtime 增加对其他语言的支持。
演讲提纲:
1. Wasm3 解释器的性能优化剖析
Wasm3 引擎的编译实现
Wasm3 的尾调优化
Wasm3 的指令融合
解释器的局限性
2. hyengine 的引入
为什么要做 hyengine
hyengine 的设计及演进计划
hyengine 现有架构介绍
3. hyengine对 WebAssembly 的支持
汇编器和反汇编器
WebAssembly 的 JIT 实现
JIT 代码和 Native 的交互实现
WebAssembly 的 JIT 优化器
某 3D 业务场景的使用效果
3. 总结展望
hyengine 的阶段成果
hyengine 的后续计划
你将获得:
WebAssembly 解释器的性能优化原理
JIT 编译的原理
汇编器、反汇编器、优化器的原理
WebAssembly JIT 的具体方案和实现
hyengine 对多语言支持的思路



微信咨询

电话咨询
微信联系我们

