良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

HHVM(HipHop PHP)优化加速PHP代码:搭建提速五六倍的PHP服务器

EasyHHVM简介

      EasyHHVM是一个HHVM一键安装脚本,方便大家更容易安装部署HipHop PHP VM(HHVM)软件。EasyHHVM快速部署工具,开源开放此管理部署系统方便大家安装使用,以此和行业共同学习进步。


EasyHHVM开源宗旨

      EasyHHVM快速部署工具致力于在中国推广和普及(HHVM)HipHop PHP VM相关技术,推动国内更多人专注于HipHop PHP开发、应用、推广的开源爱好者,推出的EasyHHVM版本更易于开发,功能更强大。


EasyHHVM安装

      EasyHHVM最新版本安装包同时能支持Debian6 / 7 ,获取Deb安装包从“http://sourceforge.net/projects/easyhhvm/”SF官方项目托管网站下载。 
取名叫 “EasyHHVM” hhvm Deb安装包制作。EasyHHVM_Debian7.1_amd64.deb 基于Debian7.1系统64位 deb安装包。即将推出EasyHHVM_Debian6.0.5_amd64.deb 基于Debian6.0.5系统64位 Deb安装包。更多信息请关注新浪微博 @HHVM

构建HHVM实例
       HHVM是Facebook的PHP改进计划又收获了一款重要产品,新的开源HipHop虚拟机,能够即时转换PHP代码并在性能上获得重大改进。
现在运行 WordPress/Drupal 等流行 PHP 网站应用程序的流行环境搭配是 Nginx/Apache + MySQL + PHP/PHP-FPM 组合。可采用HHVM替代PHP服务器

可以使用EasyHHVM一键安装脚本安装HHVM服务器,安装方法非常简单、易用和高效率。
命令
# wget http://sourceforge.net/projects/easyhhvm/files/EasyHHVM/EasyHHVM_Debian7.1_amd64.deb
# sh install.sh
在Debian系统里只需要上面两条命令,即可完成HHVM服务器的安装。

启动HHVM服务
# service easyhhvm start
更多详细命令参数
root@debian64-JimmyLi:~# service easyhhvm help
Usage:/etc/init.d/easyhhvm {start|stop|restart|reload}

启动正常的示例
root@debian64-JimmyLi:~# service easyhhvm start
EasyHHVM Start OK!
EasyHHVM soft package , HHVM(HipHop PHP) HipHop VM v2.1.0-dev (rel) .You can download it from here (my Sina micro-blog W eibo.com @HHVM) source code and procedures.

root@debian:~# netstat -lnp
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2171/hhvm
HHVM监听80端口,直接提供WWW服务。


 

HipHop PHP的开源资源相关信息

HHVM 项目地址
   Facebook 将 HipHop PHP 开源后,代码是存放在“http://github.com/facebook/hiphop-php”这个源码库中。
大家可以从上面的 Github 页面下载 HipHop PHP 的源代码,然后在自己电脑上安装测试。

温馨提醒:目前 HipHop PHP 主要面向 64位 Linux 服务器,已经在Debian、CentOS、Ubuntu、RedHat、Fedora等操作系统上安装成功。
建议使用 64位平台来测试,据说 EasyHHVM 安装 HipHop VM 最方便。其他非主流服务器也可安装,但比较麻烦。

HHVM 技术介绍:
    如果你需要更多教程指导,可参看 Facebook HipHop PHP 的官方 wiki。地址是“http://wiki.github.com/facebook/hiphop-php/building-and-installing”。


HHVM趋势总结

   Hiphop PHP 和HHVM目前在国内还是个新事物,从PHP开源这个技术行业的动态信息看,目前HHVM使用在国内很少,主要是因为目前PHP开发项目基于传统Zend PHP环境开发的影响。与此同时,目前国内各媒体对HHVM(HipHop PHP)相关的技术文章比较少。
依照HHVM趋势必将很快引起更多人关注。等待其扩展更完全应用后,应该会迅速普及起来!


最后,如果你找不到,可以从这里下载(我的新浪微博 @HHVM)源代码和程序(在HHVM HipHop PHP 文件夹中)


互联网上多种HipHop PHP Logo设计图?


 



 看全球互联网最大社交网站Facebook的PHP提速传奇故事

   Facebook期望通过“HipHop”虚拟机(HHVM)来提高PHP的性能。

   如今,Facebook在全球拥有超过10亿的用户。早在2010年,Facebook推出了一款名为HipHop的工具,可以在通过服务器执行代码前,将PHP代码转换成C++代码。与纯粹的PHP代码相比,这种模式处理的流量高出五六倍之多。

   开发HipHop的技术员说:“如果没有HipHop,我们可能已经陷入困境。我们所需要的服务器数量很可能超出了我们的能力。”他们决定更进一步,让Facebook永久摆脱这种困境。于是,他们三人达成了共识,决定将PHP的性能提升到更高的水平,把HipHop替换成虚拟机——这种软件可以在该网站的PHP代码和服务器硬件之间产生更大的协同效应。

   启动HHVM“HipHop虚拟机”项目。

   他们决定放弃将PHP转换成C++的方式,转而将其直接转换成机器代码——也就是服务器芯片所使用的语言——而且会在代码执行过程中完成这一转换。通过实时追踪网站的运行方式,他们可以更好地了解如何将其转换成机器代码,从而最终提升速度。“HipHop似乎完全可以被击败。”这是他们期待的最新成果。

   同时他开发了一款新的电脑内存管理工具。这款名为jemalloc的工具很快被用在Mozilla火狐浏览器上。“他帮助我们将火狐的内存使用量降低了一半。”并且将这个最新优化技术用在HHVM项目上,提升PHP运行速度。今年年初由于facebook而火起来的jemalloc广为人之,但殊不知,它在malloc界里面很早就出名了。相信很多朋友都使用过Mozilla火狐浏览器,而这款浏览器的各方面性能确实是最好的。

   在2012年11月6日美国总统大选日当天终于超过了HipHop。开发HipHop的技术员为了表达对最初的PHP转换器的敬意,他们将该系统命名为“HipHop虚拟机”,简称HHVM。这套系统很快被安装到Facebook网站的底层架构中,并一直沿用至今。

   HHVM使用了所谓的JIT“just-in-time”编辑模式,使得Facebook的PHP代码可以在服务器上执行时转换成机器语言。这与Java编程语言的运行方式一样,但Java虚拟机已经诞生多年,而且服务于整个行业的程序员。HipHop虚拟机则是专门针对Facebook开发的。不过,与Facebook基础架构中的很多元素一样,Facebook已经开放了该系统的源代码,方便所有人使用。

 

HHVM(HipHop PHP)虚拟机已编译了PHP那些模块
    HHVM已编译了PHP那些模块?相信这方面是很多朋友关心的问题。熟悉PHP扩展模块、PHP功能软件库的朋友会发现,在源码编译安装PHP扩展模块的时候“./configure”添加进去的模块参数,HHVM这里的模块名称是一致的。从列表中我们一目了然看到HHVM(HipHop PHP)虚拟机已编译了PHP那些模块,它已经将PHP一般常用的功能模块集成了。所以对于PHP程序员和系统工程师来说,这是个好消息。 

 

HHVM版本:HipHop VM v2.1.0-dev (rel)
HipHop PHP版本:5.4.999-hiphop

PHP已编译模块检测 
apc  bcmath  ctype  curl  date  dom  exif  fb  GD  hash  hotprofiler  iconv  icu_ucsdet  
icu_uspoof  idn  imap  json  ldap  mbstring  mcrypt  memcache  memcached  mysql  openssl  pcntl  pcre  
PDO  pdo_mysql  pdo_sqlite  posix  Reflection  server  session  SimpleXML  soap  sockets  sqlite3  sysvmsg  sysvsem  
sysvshm  thread  thrift_protocol  tokenizer  xhprof  xml  xmlreader  xmlwriter  zlib   

 


开源项目HipHop VM for PHP官方英文原文介绍

介绍的HHVM英文原文如下:
HipHop VM (HHVM) is a new open-source virtual machine designed for executing programs written in PHP. HHVM uses a just-in-time compilation approach to achieve superior performance while maintaining the flexibility that PHP developers are accustomed to. HipHop VM (and before it HPHPc) has realized > 5x increase in throughput for Facebook compared with Zend PHP 5.2.

HipHop is most commonly run as a standalone server, replacing both Apache and modphp.
Virtual Machine, Runtime, and JIT for PHP.

URL:https://github.com/facebook/hiphop-php
从上面介绍我们能获取几个信息。
1.据 Facebook 称,HHVM 的性能是 Zend PHP 5.2 的5倍多,更重要的是 HHVM 是开源的。
2.目前Facebook已将该HipHop虚拟机开源,源代码发布在GitHub上。
3.HipHop虚拟机(HHVM)它是一个PHP的JIT(Just-In-Time)编译器,同时具有产生快速代码和即时编译的优点。



HHVM有如下新特性、新改进

   Facebook期望通过“HipHop”虚拟机(HHVM)来提高PHP的性能。Facebook一直大力致力于在PHP在性能方面的改善,使其精简有效率。
他们最新技术:HipHop VM(HHVM), 一个能够显著提高PHP加载动态页面性能的虚拟机。更值得称道的是,他们把这个技术开源与世人共享。

PHP虚拟机HHVM和编译HPHPc一样快。Facebook最近宣布它的解释型PHP运行环境HHVM(HipHop VM)已经达到甚至超过了编译型PHP运行环境HipHop的运行速度。开源下载在Github 项目,使用PHP的同学可以试试。

为提高 PHP 性能,Facebook 开发了 HipHop VM(HHVM)技术。腾讯科技的一篇文章介绍了 HHVM 背后的故事。

更多详细的参数信息“hhvm --help”命令可获取。HHVM详细帮助信息如下:

  1. root@jimmyli:~# hhvm --help

  2. Usage:


  3. hhvm [-m <mode>] [<options>] [<arg1>] [<arg2>] ...


  4. Options:

  5. --help display this message

  6. --version display version number

  7. --compiler-id display the git hash for the compiler

  8. id

  9. --repo-schema display the repo schema id used by this

  10. app

  11. -m [ --mode ] arg (=run) run | debug (d) | server (s) | daemon |

  12. replay | translate (t)

  13. -c [ --config ] arg load specified config file

  14. -v [ --config-value ] arg individual configuration string in a

  15. format of name=value, where name can be

  16. any valid configuration for a config

  17. file

  18. -p [ --port ] arg (=-1) start an HTTP server at specified port

  19. --port-fd arg (=-1) use specified fd instead of creating a

  20. socket

  21. --ssl-port-fd arg (=-1) use specified fd for SSL instead of

  22. creating a socket

  23. --admin-port arg (=-1) start admin listener at specified port

  24. --debug-config arg load specified debugger config file

  25. -h [ --debug-host ] [=arg(=localhost)]

  26. connect to debugger server at specified

  27. address

  28. --debug-port arg (=-1) connect to debugger server at specified

  29. port

  30. --debug-extension arg PHP file that extends y command

  31. --debug-cmd arg executes this debugger command and

  32. returns its output in stdout

  33. --debug-sandbox arg (=default) initial sandbox to attach to when

  34. debugger is started

  35. -u [ --user ] arg run server under this user account

  36. -f [ --file ] arg executing specified file

  37. -l [ --lint ] arg lint specified file

  38. -w [ --show ] arg output specified file and do nothing

  39. else

  40. --parse arg parse specified file and dump the AST

  41. --temp-file file specified is temporary and removed

  42. after execution

  43. --count arg (=1) how many times to repeat execution

  44. --no-safe-access-check arg (=0) whether to ignore safe file access

  45. check

  46. --arg arg arguments

  47. --extra-header arg extra-header to add to log lines

  48. --build-id arg unique identifier of compiled server

  49. code

  50. --xhprof-flags arg (=0) Set XHProf flags

以上是HipHop VM v2.1.0-dev (rel)详细参数信息。
Facebook将HipHop提速创新改良,将它替换成虚拟机,该系统命名为“HipHop虚拟机”。Facebook技术员期望通过HipHop虚拟机(HHVM)来提高PHP的性能。同时HHVM是Facebook最新提速成果,并且是开源项目。目前Facebook已将该HipHop虚拟机开源,源代码发布在GitHub上。(https://github.com/facebook/hiphop-php/
  


百科知识普及 

HipHop PHP为何方神器

   HipHop for PHP是一系列PHP脚本语言的程式码转换器的集合,它包含HPHPc、HPHPi、HPHPd以及HHVM,这四个脚本引擎各有所不同,但是他们共用相同的执行时期(Runtime)及工具集(Toolset)。HipHop是由Facebook所建立,他们用它来节省伺服器的资源。HipHop被发布时,已经是高达60万行由C++及C所撰写的程式码,它以自由软件发布,采用PHP许可证 3.01版。
   HipHop for PHP可显著的增快PHP应用程式的速度,借由2到6个已观察到的要素,HipHop改善了网页生成的效能。

 

 


HHVM
   
   HHVM全称Hiphop PHP Virtual Machine,简称HHVM。

   HHVM是Facebook最新PHP开源技术。这是当前版本的HipHop PHP(被称之为HHVM),被用以取代HPHPc以及HPHPi在产品的开发及发布,HHVM借由将 PHP 程式码编译为 二元码 ,使其可运行于虚拟机器的环境,也可以利用客制的JIT在执行时期编译为机器码。当前Facebook的PHP程式皆运行在HHVM上。


标签: hhvm.php

作者:良玉 分类:HHVM 浏览:1082 评论:0
留言列表
发表评论
来宾的头像