Hasty Briefsbeta

双语

NativeJIT: A C++ expression –> x64 JIT

a year ago
  • #C++
  • #JIT compilation
  • #Bing search engine
  • NativeJIT 是一个开源、跨平台的高性能即时编译库,专门用于编译涉及C数据结构的表达式。
  • 由Bing团队开发,应用于Bing搜索引擎中,根据用户查询对文档进行评分。
  • 该库轻量级、运行速度快,除标准C++运行时外无其他依赖,支持Linux、OSX和Windows平台。
  • 其通过重点优化寄存器分配来提升生成代码性能,这对大规模吞吐量和低延迟至关重要。
  • 专为运行时才能确定表达式、需多次执行以分摊编译开销且要求低编译延迟的场景设计。
  • 支持算术/逻辑运算、指针/数组操作、条件判断、结构体字段访问及调用C函数等功能。
  • 构建需CMake(2.8.11+)和现代C++编译器(gcc5+/clang3.4+/VC2015+)。
  • 提供*nix平台、OSX(Makefile/Xcode)和Windows(Visual Studio 2015)的构建示例脚本。
  • 示例代码演示了编译计算圆面积的表达式,并展示生成的汇编代码。