HipHop for 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改善了网页生成的效能[2][3]。
历史
一开始,HipHop由Haiping Zhao于Facebook领衔开发,运行于CentOS及Fedora作业系统。在释出之前,已经被开发了两年,最后于2010年2月2日发布,但由于技术的困难,实际释出的时间延后18天[4][5],于2月20日发布在公开的Git程式库。
这是最原始版本的HipHop(被称之为HPHPc),它可以将PHP的程式码转换成C++的程式码,并且利用g++将它编译成机器语言。Facebook使用它多年,但由于他对于开发者并不友善,而且Facebook庞大的程式库使得开发者在进行程式更动时,必须等待数个小时的编译,所以HipHop在2013年2月19日被官方弃用[6]。
HPHPc的开发者模式版本(被称之为HPHPi)被用来处理PHP程式码,它在执行时期进行编译,但与HPHPc使用相同的执行时期以及执行逻辑,比起HPHPc,它的执行效能较低,但它令开发者可以使用与产品发布时相同堆叠的程式码。目前HPHPi的支援也已经终止。
HipHop的除错程式(被称之为HPHPd)被用来作为HipHop执行时期的键盘互动界面,它允许开发者可以尝试使用一些程式码、紧系执行时期的直译器以及可以设定监视器或中断点。HPHPd现在仍被支援及使用。
这是当前版本的HipHop(被称之为HHVM),被用以取代HPHPc以及HPHPi在产品的开发及发布,HHVM借由将 PHP 程式码编译为位元组码 ,使其可运行于虚拟机器的环境,也可以利用客制的JIT在执行时期编译为机器码。当前Facebook的PHP程式皆运行在HHVM上。
使用HipHop for PHP
HipHop for PHP是一个开放原始码的专案,可在GitHub(页面存档备份,存于互联网档案馆)取得,它是采用PHP许可证授权。ubuntu上已编译可直接执行的套件已经可以在HipHop专案的apt程式库取得[7][8]。
于2012年5月,HipHop的wiki指出 目前已经支援PHP 5.3的多项特色[1](页面存档备份,存于互联网档案馆)
HipHop于CentOS及Fedora上开发,目前在其他系统编译可能不能正常运行,虽然在未来可能会加入其他作业系统的支援,但是现在,HipHop仅能运行于64位元架构的环境。
HipHop在执行PHP专案,有相当多的改进,也能减少记忆体使用量[9]并增加对TBB的parallel_for的支援,以至于除了加速之外并显著的减少记忆体使用量[10]。
另见
- Project Zero
- Phalanger (compiler)
参考文献
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.