欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2022-05-29 17:29:36
...

EasyHHVM简介 EasyHHVM是一个HHVM一键安装脚本,方便大家更容易安装部署HipHop PHP VM(HHVM)软件。EasyHHVM快速部署工具,开源开放此管理部署系统方便大家安装使用,以此和行业共同学习进步。 EasyHHVM开源宗旨 EasyHHVM快速部署工具致力于在中国推广和普及(

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设计图?

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


看全球互联网最大社交网站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 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 ] [] [] [] ...
  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(HipHop PHP)优化加速PHP代码:搭建提速五六倍的PHP服务器


HHVM

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

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





http://blog.uouo123.com]