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/hhvm

一些贴吧问答:参考贴吧:http://tieba.baidu.com/f?kw=hhvm

1 Lighttpd搭配hhvm呢?

  这个也是可以的 如果是使用hhvm的fastcgi协议,只需要把lighttpd配置中的php-cgi地址改到hhvm监听的端口或unix socket地址即可

2 hhvm跑PHP脚本比zend还慢是怎么回事?

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会自动检测代码修改并重新编译

5 hhvm的性能为什么比zend引擎高?

http://tieba.baidu.com/p/2902029974

最新文章

  1. 精通JavaScript的this关键字
  2. 原创教程:SpagoBI4.2汉化及配置Mysql数据库教程
  3. Linux用户组与用户组基本命令
  4. php部分--面向对象三大特性-封装(另加连续调用的一个例子)、继承(重写、重载的例子)、多态;
  5. 在linux中安装和卸载mysql
  6. ubuntu 屏幕截图
  7. 最短JS判断是否为IE6(IE的写法) (转)
  8. Windows下安装GnuRadio最简单的方法(没有之一)
  9. Fucking "pkg-config not found"
  10. 原创-兼容IE8的placeholder
  11. Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!
  12. [week1]每周总结与工作计划
  13. Spark on Mesos: 搭建Mesos的一些问题
  14. Unity3DGUI:常用控件
  15. Java设计模式——代理模式
  16. [JSOI2010]满汉全席 2-SAT
  17. Jquery的window.onload实现
  18. [转]Skynet之斗转星移 - 将控制权交给Lua
  19. 微信小程序--扫描二维码
  20. 2019年北航OO第一次博客总结

热门文章

  1. eclipse报这个错误org.eclipse.swt.SWTError: No more handles (eclipse 和 TeamViewer 冲突)
  2. 【springboot-01】整合quartz
  3. Centos 7 快速安装 Docker
  4. 接口测试工具postman(七)下载文件接口
  5. git基础(1)
  6. Linux命令应用大词典-第11章 Shell编程
  7. 给eclipse安装color-theme插件
  8. SIG蓝牙mesh笔记5_Provisionging
  9. nodejs笔记--Events篇(二)
  10. Java常用类之Math类