Facebook 将重写 PHP 运行环境

来源:互联网 发布:京东数据挖掘笔试题 编辑:程序博客网 时间:2024/06/07 09:33

Facebook将帮助PHP团队重写PHP Runtime源代码,并将新的运行环境开源。原因是由于现有的PHP框架不能满足Facebook对网站速度的要求。新的运行环境可能会给PHP开发社区带来新的活力。请看原文译稿。

一周前,我跟大家说PHP核心团队曾去过Facebook总部,并被迫签署了保密协议,然后被带到一间非常安静、被隔绝的会议室中,在那里,他们获知了一些非常酷的由Facebook支持的开源项目。

好吧,我在这里总结一下吧。最终我清楚在那儿发生什么了:Facebook打算从头开始写PHP runtime。本周二,他们将围绕该项目举行大型宣讲会,并将让其变为开源软件。对此项目的细节我一无所知,但我知道Facebook在2年前确实雇了人来从事这一方面。而且我很确信,这一直都是一个人的项目。

那么,为什么Facebook重写PHP runtime?因为PHP显然不能跟上Facebook的速度。几年前,我和Zend的人喝过咖啡。他们问我,从我得知的消息中,人们是怎么看待PHP的,我犹豫不决,然后告诉他们人们抱怨PHP很慢。现在,我个人认为PHP不慢:它根本就不是为承担像Java和.NET所承担的工作量而开发的语言。

但这仍不能改变PHP在服务器上运行缓慢的事实。好吧,当我这么跟Zend的人说时,他们当时的反应就像盖世太保侦查间谍时一样:“什么?谁说的?告诉我们他的名字!”

很显然,Zend并不认为这是一个问题。但Facebook认为是。解决这个问题的边际效益太低,但考虑到Facebook的用户,即使增加1%的用户对它们那也是巨大的帮助。

本周二,救赎将到来。可以想象,这个新项目将让PHP社区中众多大神集聚在Facebook之下。很期待他们会做的事,雅虎在六年前也处于同样的处境,但却没有抓住机会让PHP变成一个更具活力的平台和语言。

更新:梳理完评论之后,我倾向于相信人们说的Facebook将推出PHP的编译器,听起来像真的,而且和我知道的相符。但我不敢绝对确认会这样。感谢你们提供这些附加信息。

SDTimes高级编辑Alex Handy在博客中爆料,上周Facebook邀请了PHP核心团队到公司讨论他们的新项目:从头重写的PHP运行库。周二他们将正式发布这个项目,并开源。

Handy相信,这是两年前Facebook招揽的一位PHP高手所为。

但也有网友在博客下留言说,Facebook开发的是一个PHP编译器,也就是说,Facebook版本的PHP将从一个动态语言变为预编译类型安全语言。这将能使PHP的速度提升10倍。

为什么Facebook要重写PHP运行库或者开发编译器呢?显然,PHP的速度和性能无法让Facebook满意。他们决定自己动手了。

也许是听说了这一消息,Google Android核心开发人员也是TestNG项目的创始人Cedric Beust在Twitter上说:

I love PHP for how quickly I get things done but hate it for the ugly code it forces me to write. We need a real OO web language.
(我爱PHP,它使我能够很快地完成工作;我恨PHP,我不得不用它写下丑陋的代码。我们需要一个真正OO的Web语言。)
这个传闻的真相到底是怎样的呢?让我们拭目以待。

---------------------------------------------------------------------------------------

PHP之父评价Facebook的HipHop项目
  读写网记者与PHP的创造者Rasmus Lerdorf联系,询问他对Facebook刚刚开源的PHP优化项目HipHop有何看法。Lerdorf在邮件中说,这是一个很酷的项目,肯定会成为某些网站很好的选择。

  但是,他接下来说,对于许多Web应用来说,执行速度并不是主要因素。即使将总请求成本中10%的代码的执行速度提高一倍,整体上也只提高了5%。如果每次请求都要访问memcache/PostgreSQL/MySQL 10次,在系统调用上耗费大量时间,难免不要指望HipHop会带来奇迹。

  Lerdorf称HipHop代码转换程序为漂亮把戏(nifty trick),并担心会有开发人员将它错误地看成网站性能的某种魔弹。对于新的运行库,Lerdorf说,更愿意大家进行基本的性能分析(profiling),找到有用中成本最高的部分。与其加速系统中较快的部分,不如加速或者去除系统中较慢的部分。

  他还说,PHP的执行速度往往不是问题最大的地方,应该好好分析系统的各个方面,找到元凶。工具方面,他推荐用Yahoo的YSlow和Google的Page Speed分析前端的问题,再用Valgrind的Callgrind分析低层的后端性能,用XDebug分析用户空间PHP的性能。此外,他还顺带手指出了读写网前端的性能问题。

  当然,文章中也说到,Facebook的网站其他方面可能已经优化得很好,因此HipHop能够带来足够的效率。

  总之还是那句话,没有防之四海而皆准的通用银弹,工程上,具体问题具体分析,选择最合适当前环境的工具最为重要。