6

今天 PHP 世界的新闻是Facebook 的 HipHop,它:

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

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

似乎典型的受数据库限制的 Web 应用程序可能无法很好地服务于此,但更罕见的受 CPU 限制的应用程序会。

4

6 回答 6

7

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

一个额外的好处可能是会有一些基本的类型检查来确保代码在编译之前是一致的。这应该有助于定位 PHP 目前由于其弱类型系统而倾向于忽略的错误类型。

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

于 2010-02-02T20:31:14.137 回答
4

好吧,它将 PHP “转换”为 C++,以帮助提高可扩展性很大的网站的性能。

因此,HipHop 适用于当您拥有一个在哈佛开始的网站时,您会迅速成长为一家价值十亿美元的公司,并且人们正在制作一部由 Justin Timberlake 主演的电影。当你有这样一个网站并且想要节省 CPU 周期,但又不想重写你的代码库时,你可以使用 HipHop。

如果您刚刚开始,除非您被困在一个只有 PHP 程序员拒绝学习更具可扩展性的语言的荒岛上,否则您不要使用 HipHop。

于 2010-02-03T06:36:05.063 回答
2

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

这对 Facebook 这样的公司来说是件好事,因为他们可以减少他们需要的机器数量。
就为什么它对他们有用而言,他们可能对他们拥有的大量数据进行了大量的排序和索引。

于 2010-02-02T20:32:04.390 回答
0

本文:

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

用它的一系列“if”语句完美地回答了这个问题。

于 2010-02-05T16:03:22.987 回答
0

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

于 2010-02-05T16:19:40.217 回答
0

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

于 2010-02-05T16:35:18.317 回答