HHVM (HipHop Virtual Machine) 是 Facebook 开源的 PHP 执行引擎。 HHVM 采用一种JIT(just-in-time)的编译机制实现了高性能,同时又保持对 PHP 语法的充分支持。 在 Facebook 实际应用场景中,与 Zend PHP 5.2 引擎 + APC 相比,HHVM 实现了9倍的吞吐量提高和5倍的内存节约。
HHVM 能够做为一个独立的 webserver 运行,也能够提供 fastcgi 接口,挂在 webserver 下面。
官方博客:http://www.hhvm.com
github:https://github.com/facebook/hhvmphp
一些贴吧问答:参考贴吧:http://tieba.baidu.com/f?kw=hhvmgit
1 Lighttpd搭配hhvm呢?github
这个也是能够的 若是是使用hhvm的fastcgi协议,只须要把lighttpd配置中的php-cgi地址改到hhvm监听的端口或unix socket地址便可web
2 hhvm跑PHP脚本比zend还慢是怎么回事?socket
1. 首先检查你的配置项,必须设置Eval.Jit=1把JIT打开才会快,如hhvm -vEval.Jit=1 test.php
2. 若是你是用time命令来计时,好比 time hhvm test.php 和time php test.php的结果来比较那是没有意义的,由于这个时间包含了HHVM编译PHP代码和JIT编译的时间,而不是运行时间。总的看这个时间HHVM是更慢的,由于更多时间花在编译上。要测试运行时间的话,能够在PHP脚本中用gettimeofday计时打印出来。
3. 若是你是用server模式,要注意Eval.JitWarmupRequests这个选项,这个值默认是11,意思是前11个请求不使用JIT模式执行(方便作一些类型收集之类的事情),从第12个请求来始才启动JIT,因此前11个请求都是慢的,第12个请求才看出真正的性能。能够把Eval.JitWarmupRequests设置为0这样就永远都用JIT模式执行
4. 若是你是本身编译的HHVM,那要用Release模式编译,Debug模式编译出来的运行性能不好。函数
3 php性能分析工具
xhprof是PHP性能分析的好工具
hhvm内置了xhprof相关的函数,但须要打开编译选项才能用
修改CMake/Options.cmake 文件,把option(HOTPROFILER "Enable support for the hot-profiler" OFF)的OFF改成ON就能够了
其它的用法与zend版的相同,见xhprof的文档便可性能
4 hhvm与hiphop的关系?测试
hiphop是以前facebook开发的将PHP转换成C++代码的编译器,也称HPHPc,PHP->C++->二进制程序->run,由于预编译好的因此必须牺牲PHP的一些动态特性(如eval);部署上,须要先在线下编译好C++程序,再部署到线上执行。
hhvm是PHP执行引擎,PHP->Bytecode->(JIT)二进制code->执行,也支持直接执行Bytecode(Interpreter模式),二者能够随时切换,所以可支持完整的PHP特性;部署上,直接部署PHP代码到线上就能够,HHVM会自动检测代码修改并从新编译url
5 hhvm的性能为何比zend引擎高?
http://tieba.baidu.com/p/2902029974