HipHop for PHP是一系列PHP脚本语言的代码转换器的集合,它包含HPHPcHPHPiHPHPd以及HHVM,这四个脚本引擎各有所不同,但是他们共享相同的运行时(Runtime)及工具集(Toolset)。HipHop是由Facebook所建立,他们用它来节省服务器的资源。HipHop被发布时,已经是高达60万行由C++C所撰写的代码,它以自由软件发布,采用PHP许可证 3.01版。

HipHop
开发者Facebook
首次发布2010年2月2日 (2010-02-02)
当前版本
  • 3.15.0 (2016年9月28日;稳定版本)[1]
编辑维基数据链接
源代码库 编辑维基数据链接
编程语言C++, C
操作系统跨平台
类型代码转换
许可协议自由软件 (PHP许可证)
网站wiki.github.com/facebook/hiphop-php/
facebook.com/hphp

HipHop for PHP可显著的增快PHP应用程序的速度,借由2到6个已观察到的要素,HipHop改善了网页生成的性能[2][3]

历史 编辑

一开始,HipHopHaiping ZhaoFacebook领衔开发,运行于CentOSFedora操作系统。在发布之前,已经被开发了两年,最后于2010年2月2日发布,但由于技术的困难,实际发布的时间延后18天[4][5],于2月20日发布在公开的Git程序库。

HPHPc 编辑

这是最原始版本的HipHop(被称之为HPHPc),它可以将PHP的代码转换成C++的代码,并且利用g++将它编译成机器语言Facebook使用它多年,但由于他对于开发者并不友善,而且Facebook庞大的程序库使得开发者在进行程序更动时,必须等待数个小时的编译,所以HipHop在2013年2月19日被官方弃用[6]

HPHPi 编辑

HPHPc开发者模式版本(被称之为HPHPi)被用来处理PHP代码,它在执行时期进行编译,但与HPHPc使用相同的执行时期以及执行逻辑,比起HPHPc,它的执行性能较低,但它令开发者可以使用与产品发布时相同堆栈的代码。目前HPHPi的支持也已经终止。

HPHPd 编辑

HipHop的调试程序(被称之为HPHPd)被用来作为HipHop执行时期的键盘交互界面,它允许开发者可以尝试使用一些代码、紧系执行时期的解释器以及可以设置监控器或中断点。HPHPd现在仍被支持及使用。

HHVM 编辑

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

使用HipHop for PHP 编辑

HipHop for PHP是一个开放源代码的项目,可在GitHub页面存档备份,存于互联网档案馆)获取,它是采用PHP许可证授权。ubuntu上已编译可直接执行的包已经可以在HipHop项目的apt程序库获取[7][8]

于2012年5月,HipHopwiki指出 目前已经支持PHP 5.3的多项特色[1]页面存档备份,存于互联网档案馆

HipHopCentOSFedora上开发,目前在其他系统编译可能不能正常运行,虽然在未来可能会加入其他操作系统的支持,但是现在,HipHop仅能运行于64位架构的环境。

HipHop在执行PHP项目,有相当多的改进,也能减少存储器使用量[9]并增加对TBBparallel_for的支持,以至于除了加速之外并显著的减少存储器使用量[10]

另见 编辑

参考文献 编辑

  1. ^ Release 3.15.0. 2016年9月28日 [2018年3月13日]. 
  2. ^ HipHop for PHP: Benchmark. [2011-05-01]. (原始内容存档于2011-05-16). 
  3. ^ Drupal 7: HipHop for PHP vs APC – benchmark. [2011-05-18]. (原始内容存档于2011-05-19). 
  4. ^ PHP Creator Asks, Is Facebook's HipHop Just a 'Nifty Trick'?页面存档备份,存于互联网档案馆
  5. ^ Repository documentation on February 8, 2010.页面存档备份,存于互联网档案馆
  6. ^ Remove support for building HPHPc. [2013-03-18]. (原始内容存档于2019-10-17). 
  7. ^ hiphop-php_2.0.0 release. 2013-03-14 [2013-03-18]. 
  8. ^ Prebuilt packages on Ubuntu 12.04. 2012-09-15 [2013-03-18]. 
  9. ^ WordPress on HipHop – White Paper« Open Parallel. Openparallel.wordpress.com. 2010-11-01 [2011-04-12]. (原始内容存档于2011-03-16). 
  10. ^ TBB in WordPress – White Paper« Open Parallel. Openparallel.wordpress.com. 2010-11-01 [2011-04-12]. (原始内容存档于2011-03-19). 

外部链接 编辑