HHVM和/或PHP执行引擎究竟是什么?

ram*_*ssa 4 php hiphop hhvm

我一直在阅读Facebook的Hack,它让我阅读有关HipHop虚拟机的内容.我希望更好地理解这一点,但无法找到明确的定义.维基百科将其定义为:HipHop for PHP(缩写为HipHop)描述了由Facebook创建的一系列PHP执行引擎和改进.我不明白PHP引擎是什么......

所以我想我的问题是:"PHP执行引擎究竟是什么?" 以及PHP应用程序的好处究竟如何?

谢谢!

pre*_*mer 8

您可以使用从php.net下载的标准(Zend)引擎运行PHP代码,效果很好.如果您为操作系统软件包下载WAMP,MAMP或任何其他预先打包的PHP和MySQL,那么您就是这样做的.

或者,您可以使用HipHop运行(大多数[1])PHP代码,效果很好.

您正在使用哪一个应该对最终用户有效.您的开发人员和运营团队需要知道.

如果您运行的网站流量很大,您可以选择使用HipHop.HipHop虽然不支持PHP的所有功能,但运行速度更快.它还有一些主要PHP发行版中没有的新功能,主要与类型提示有关.这些可以提供一些非常有吸引力的工具来读取代码检查错误.

您可能想要使用HipHop的原因:

  • 性能对你来说很重要
  • HipHop提供的静态分析工具对您的团队非常重要
  • HipHop中的新功能,但Zend PHP中的新功能对您的团队很有吸引力.

您可能想要使用Zend PHP的原因

  • 你需要一个不适用于HipHop的扩展程序(那里有很多扩展,想想:gd,curl,imagemagik等等.现在很多都可用于HipHop,很多都没有).
  • 您的代码或框架正在使用不受支持的功能.
  • 您在托管当前的Webserver和PHP堆栈方面拥有丰富的专业知识,并且不希望从头开始.

这篇文章涉及一些HHVM与HACK的差异,并给出了一个很好的运行:http://www.marco.org/2014/03/21/hack

[1]并非所有可以使用常规PHP引擎运行的代码目前都适用于HipHop.他们正在处理大多数问题,有些他们刚刚决定不解决(我认为变量变量可能是这个例子,例如$$ var)

  • Re [1] - HHVM是标准PHP语言和Hack语言的运行时.虽然Hack确实禁止PHP的某些功能,例如Hack代码中的$$ var,但HHVM在运行PHP代码时仍会允许这些功能. (2认同)