6

切换到 HipHop 而不是 XCache 是否有意义?

HipHop 是否准备好迎接黄金时段,还是我们应该等待几个月才能实施它?

编辑:我们对在运行 vBulletin 的服务器上测试配置很感兴趣。

4

3 回答 3

22

让我澄清一下您可能对 Hiphop 和 Xcache 的误解。XCache 通过将 Opcode 缓存添加到 ZEND 的 PHP 实现(如 APC 和朋友)来工作,而 Facebook 的 HipHop 允许将 PHP 代码转换为 C++ 代码,然后使用 g++ 编译。不可能使用 HipHop 运行 XCache,因为 HipHop 不依赖于 Zend 解释器(甚至不使用 php 操作码,因为它在转换为 C++ 后编译为字节码)。

现在来回答您的问题,HipHop 正在被实时用于托管大量 Facebook 流量。如果这个项目不是很稳定,Facebook 不会发布它,但由于它是非常新的,我仍然会谨慎行事。HipHop 不仅仅是对旧 Zend Interpreter 的一个补丁,它是一种运行 PHP 代码的完全不同的方式,并且可能会有一些错误。

Facebook 为确保在切换到 Hiphop 之前能够正常工作而做的一件事是,他们能够为网站上的每个可能请求设置非常严格的单元测试。这样,如果 Hiphop 的输出与普通的 Zend PHP 不同,他们将返回并进行更多调试,直到一切都“为他们工作”。仅仅因为它在 Facebook 代码库上“有效”并不能证明它适用于您的代码库。如果您决定改用 HipHop,请务必对其进行测试。

编辑:

HHVM(HPHP 的新 VM 版本)现在可以evalcreate_function. 由于所有/最有意义的原因,它们应该是相同的。

有一些东西与 HipHop 不兼容。他们删除了evalandcreate_function函数。他们目前也只支持 PHP 5.2.x,但他们计划“很快”添加对 5.3 的支持。

于 2010-03-18T23:57:17.173 回答
8

我喜欢 HipHop 的想法,所以不要误会我的意思,但有一点要记住:HipHop 并不适合所有人。从塞巴斯蒂安伯格曼

它不能解决 99.9% 的 PHP 部署所面临的问题

除非您有 Facebook 比例的流量并且您的瓶颈是 CPU 或内存使用,否则您不太可能看到太多好处(与 xcache、apc 等相比)。数据库和文件系统访问仍然是你的杀手锏。

于 2010-03-19T00:15:02.203 回答
2

我相当有信心 vbulletin 3.x 不能与 HipHop 一起使用。VB 3 的插件系统由近 2000 个 eval 语句组成,散布在整个代码中,并且 hiphop 不支持 eval。

在编译 vbulletin 时,这可能只是冰山一角。

于 2010-10-11T20:35:43.200 回答