Php Facebook';s嘻哈-什么';这是干什么的?

Php Facebook';s嘻哈-什么';这是干什么的?,php,facebook,hiphop,Php,Facebook,Hiphop,今天PHP世界的新闻是: 从技术上讲,hiphopforphp本身并不是一个编译器。相反,它是一个源代码转换器。HIPHOP编程将PHP源代码转换为高度优化的C++,然后使用G++编译它。HipHop以语义等价的方式执行源代码,并牺牲一些很少使用的特性(如eval()),以换取性能的提高。HipHop包括一个代码转换器、PHP运行时系统的重新实现,以及许多常见PHP扩展的重写,以利用这些性能优化 我的问题是,这对什么类型的web应用程序真正有用 似乎典型的数据库绑定web应用程序可能不会得到很好

今天PHP世界的新闻是:

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

我的问题是,这对什么类型的web应用程序真正有用


似乎典型的数据库绑定web应用程序可能不会得到很好的服务,但很少有CPU绑定的应用程序会得到很好的服务。

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

另外一个好处可能是,在编译代码之前,将进行一些基本类型检查,以确保代码是一致的。这将有助于找到PHP目前由于其弱类型系统而忽略的bug类型


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

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

这对Facebook这样的公司来说是好事,因为他们可以减少所需的机器数量。
至于为什么对他们有用,他们可能会对大量的数据进行排序和索引。

< P>它将PHP转换成C++,以帮助实现一个可扩展的网站。p> 所以,HipHop是为了当你在哈佛建立了一个网站,你很快就成长为一家价值数十亿美元的公司,人们正在制作一部关于贾斯汀·汀布莱克主演的电影。如果您有这样一个网站,并且希望节省CPU周期,但又不想重写代码库,那么您可以使用HipHop

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

本文:


用一系列“如果”语句完美地回答了这个问题

> P>你可以把它看作是一组编译器,它接收一堆PHP文件,并生成一组C++文件,然后用G++编译它们(不确定是否支持其他编译器)。生成的exe是包含web服务器的web应用程序。这意味着你可以运行exe,你就可以开始了。该web服务器基于web服务器,据说相当高效。

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

相关(但不是DUPE):我整个星期都在读关于这个的谣言,我很高兴它终于出来了!我在一个社交网络上工作,这类网站的性能总是最重要的。这是一个编译器,不是吗?它将PHP编译成C++,而大家都在关注速度,其实使用HIPHOP还有其他的原因。我最感兴趣的是将它用作“find/-name*.php | xargsrm-f”的前身。看来HIPOP生成的C++代码可能是足够干净的。PHP不缩放是有点不公平的。虽然这个项目没有帮助定型!TBH我甚至不知道它是否可以伸缩——Digg使用它,所以它必须伸缩得很好,嗯?我只是想看看Facebook的调查结果。Facebook确实存在着成为“第二大访问量最多的网站”的问题!“PHP不可伸缩”是非常错误的,imo。阻止伸缩的是糟糕的设计,而不是编程语言的选择。更多关于这个主题的信息,请参阅本文-它使用PHP来说明其要点。