今天PHP世界的新闻是Facebook's HipHop,其中:
HipHop for PHP在技术上并不是编译器本身。相反,它是源代码转换器。 HipHop以编程方式将您的PHP源代码转换为高度优化的C ++,然后使用g ++进行编译。 HipHop以语义上等效的方式执行源代码,并牺牲一些很少使用的功能 - 例如eval() - 以换取提高的性能。 HipHop包括代码转换器,PHP运行时系统的重新实现,以及许多常见PHP扩展的重写,以利用这些性能优化。
我的问题是,这实际上对哪种类型的Web应用程序有用?
看起来像典型的数据库绑定的网络应用程序可能不会受到很大帮助,但是更少见的CPU绑定应用程序会。
答案 0 :(得分:7)
进行大量处理和/或使用大量内存的Web应用程序。显然这个HipHop会减少大约50%的CPU使用率并减少内存使用量(我没有看到任何地方提到的内存使用量会减少多少)。这意味着您应该能够使用更少的服务器提供相同数量的请求。
额外的好处可能是会有一些基本的类型检查,以确保代码在编译之前是一致的。这应该有助于找到PHP当前因弱类型系统而忽略的错误类型。
缺点似乎是它可能不支持PHP的一些更动态的功能,例如eval
(尽管可以说这也是一个积极因素)。
答案 1 :(得分:4)
好吧,它将PHP“转换”成C ++,以帮助实现可扩展性很强的网站。
所以,HipHop适用于你在哈佛大学创办的网站,你很快就会成长为一家十亿美元的公司,人们正在制作一部关于贾斯汀·汀布莱克主演的电影。如果你有这样一个网站并想节省CPU周期,但又不想重写你的代码库,你可以使用HipHop。
如果你刚刚开始,除非你被困在荒岛上只有PHP程序员拒绝学习更具伸缩性的语言,否则你不会使用HipHop。
答案 2 :(得分:2)
在解释代码上运行机器代码更快。这在某种意义上是有用的,但也减少了您需要的机器数量,因为每个处理器的工作量较少。
这对Facebook这样的公司有利,因为他们可以减少所需的机器数量 就它为什么对它们有用而言,它们可能会对它们拥有的大量数据进行大量的排序和索引。
答案 3 :(得分:0)
答案 4 :(得分:0)
您可以将其视为某种编译器,它接收一堆.php文件,并生成一堆c ++文件,然后您可以使用g ++进行编译(不确定是否支持其他编译器)。生成的exe是包含Web服务器的Web应用程序。这意味着你可以运行exe,你很高兴。 Web服务器基于libevent,并且效率非常高。
答案 5 :(得分:0)