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