• HHVM,高性能的PHP执行引擎


    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地址即可

    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

  • 相关阅读:
    采用坐标变换(移动和旋转)画箭头
    学会Func
    一个链接器的实现
    linux内核skb操作
    终于实现samba可写不可删除
    删掉SafeDrv病毒(这个病毒有点意思)
    Writing a ServiceMain Function(使用RegisterServiceCtrlHandler函数)
    利用Winscp,Putty实现Windows下编写Linux程序
    联发科6亿美元将大陆子公司卖给四维图新(180个人价值6亿美元)
    TFTP:简单文本传输协议,BOOTP:引导程序协议
  • 原文地址:https://www.cnblogs.com/thrillerz/p/4158694.html
Copyright © 2020-2023  润新知