Facebook的HipHop - 它的用途是什么?

时间:2010-02-02 20:24:00

标签: php facebook hiphop

今天PHP世界的新闻是Facebook's HipHop,其中:

  

HipHop for PHP在技术上并不是编译器本身。相反,它是源代码转换器。 HipHop以编程方式将您的PHP源代码转换为高度优化的C ++,然后使用g ++进行编译。 HipHop以语义上等效的方式执行源代码,并牺牲一些很少使用的功能 - 例如eval() - 以换取提高的性能。 HipHop包括代码转换器,PHP运行时系统的重新实现,以及许多常见PHP扩展的重写,以利用这些性能优化。

我的问题是,这实际上对哪种类型的Web应用程序有用?

看起来像典型的数据库绑定的网络应用程序可能不会受到很大帮助,但是更少见的CPU绑定应用程序会。

6 个答案:

答案 0 :(得分:7)

进行大量处理和/或使用大量内存的Web应用程序。显然这个HipHop会减少大约50%的CPU使用率并减少内存使用量(我没有看到任何地方提到的内存使用量会减少多少)。这意味着您应该能够使用更少的服务器提供相同数量的请求。

额外的好处可能是会有一些基本的类型检查,以确保代码在编译之前是一致的。这应该有助于找到PHP当前因弱类型系统而忽略的错误类型。

缺点似乎是它可能不支持PHP的一些更动态的功能,例如eval(尽管可以说这也是一个积极因素)。

答案 1 :(得分:4)

好吧,它将PHP“转换”成C ++,以帮助实现可扩展性很强的网站。

所以,HipHop适用于你在哈佛大学创办的网站,你很快就会成长为一家十亿美元的公司,人们正在制作一部关于贾斯汀·汀布莱克主演的电影。如果你有这样一个网站并想节省CPU周期,但又不想重写你的代码库,你可以使用HipHop。

如果你刚刚开始,除非你被困在荒岛上只有PHP程序员拒绝学习更具伸缩性的语言,否则你不会使用HipHop。

答案 2 :(得分:2)

在解释代码上运行机器代码更快。这在某种意义上是有用的,但也减少了您需要的机器数量,因为每个处理器的工作量较少。

这对Facebook这样的公司有利,因为他们可以减少所需的机器数量 就它为什么对它们有用而言,它们可能会对它们拥有的大量数据进行大量的排序和索引。

答案 3 :(得分:0)

这篇文章:

http://terrychay.com/article/hiphop-for-faster-php.shtml

通过一系列“if”陈述完美地回答了这个问题。

答案 4 :(得分:0)

您可以将其视为某种编译器,它接收一堆.php文件,并生成一堆c ++文件,然后您可以使用g ++进行编译(不确定是否支持其他编译器)。生成的exe是包含Web服务器的Web应用程序。这意味着你可以运行exe,你很高兴。 Web服务器基于libevent,并且效率非常高。

答案 5 :(得分:0)

对于除Facebook和其他巨大的基于PHP的网站之外的所有人来说,嘻哈基本上毫无意义。我相信很多人会因为“速度快”而加入潮流,但有多少基于PHP的应用使用整个服务器场? 仅仅因为您在社交网站上工作,并不意味着您应该考虑使用HH。