设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

Zend JIT 即时编译器开源

2015-3-2 15:47| 发布者: joejoe0332| 查看: 1215| 评论: 0|原作者: oschina|来自: oschina

摘要: Zend 宣布 Zend JIT 开源,该分支包含 PHP JIT 的 PoC 概念实现,JIT 是 OPCache 的部分实现,不要求对 PHP 引擎进行任何修改,设计时 100% 兼容。JIT 使用 LLVM 后端,在 x86 和 x86_64 平台下测试通过。目前该项目 ...

  Zend 宣布 Zend JIT 开源,源码地址:

https://github.com/zendtech/php-src/tree/zend-jit/ext/opcache/jit


  该分支包含 PHP JIT 的 PoC 概念实现,JIT 是 OPCache 的部分实现,不要求对 PHP 引擎进行任何修改,设计时 100% 兼容。JIT 使用 LLVM 后端,在 x86 和 x86_64 平台下测试通过。目前该项目还在体验阶段。


构建


  PHP 可通过如下参数进行配置和构建。LLVM 代码不稳定,因此版本间可能会有一些不兼容的问题。建议使用 LLVM 3.5 来避免兼容性问题。

  • --enable-jit

  • --with-llvm=/usr/local/llvm-3.5'

  • --with-valgrind

  • --with-oprofile


配置

  为了启用 JIT 需要在 opcache ini 指令增加新行:

  • opcache.jit_buffer_size=32M


性能

  JIT 提供超过 5 倍的性能提升,一些如 Mandelbrot 的性能提升 30 倍

TestJIT offJIT on
simple0.0300.004
simplecall0.0130.000
simpleucall0.0400.008
simpleudcall0.0410.008
mandel0.2100.007
mandel20.2800.009
ackermann(7)0.0620.014
ary(50000)0.0060.003
ary2(50000)0.0050.003
ary3(2000)0.0880.027
fibo(30)0.1260.037
hash1(50000)0.0170.012
hash2(500)0.0170.010
heapsort(20000)0.0530.018
matrix(20)0.0550.024
nestedloop(12)0.0590.010
sieve(30)0.0390.007
strcat(200000)0.0080.004
Total1.1470.206


  不幸的是 JIT 并没有提升真实应用的性能,同时 LLVM 编译时间也不适合运行时代码生成的。


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部