zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    解释机器学习模型的一些方法(一)——数据可视化
    机器学习模型解释工具-Lime
    Hive SQL 语法学习与实践
    LeetCode 198. 打家劫舍(House Robber)LeetCode 213. 打家劫舍 II(House Robber II)
    LeetCode 148. 排序链表(Sort List)
    LeetCode 18. 四数之和(4Sum)
    LeetCode 12. 整数转罗马数字(Integer to Roman)
    LeetCode 31. 下一个排列(Next Permutation)
    LeetCode 168. Excel表列名称(Excel Sheet Column Title)
    论FPGA建模,与面向对象编程的相似性
  • 原文地址:https://www.cnblogs.com/thrillerz/p/4158694.html
Copyright © 2011-2022 走看看