Facebook 将重写 PHP 运行环境

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能够带来足够的效率。

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

HHVM即HipHop Virtual Machine,目前是3.0版本,出自Facebook,它先将PHP和Hack程序编译为中间字节码,然后通过just-in-time (JIT)编译器将字节码动态翻译为x64机器代码,应用上了非常多的编译优化技术。       JIT就是HHVM高效率的所在,所谓字节码:是一种人类无法阅读的代码,专门用来给编译器高效执行的。当HHVM首次加载项目时,它会将所有的PHP代码转换成字节码;字节码的生成是与平台无关的。       机器码是一系列供CPU执行的指令。用过汇编的都应该清楚机器码,估计没人喜欢用汇编编程。通过编译器就可以把汇编转成机器码,然后供CPU处理。JIT(即时)编译器是指在运行时才会去编译字节码。字节码会存放在内存中,然后JIT编译器会根据需要加载并编译所涉的字节码。       通过以上技术,HipHop和HHVM获得了性能的提升。据官方介绍,与PHP 5.2引擎 APC相比,HHVM可以处理的Web请求吞吐量增加了9倍,而内存消耗减少了5倍。实际上HHVM之前有朋友留言提起过它,亲自测试过后发现HHVM在提升PHP处理速度上非常有优势,非常适合大型的网站。       最近,HHVM已经更新到了3.0版本,HHVM几乎已经完全支持PHP 5.5了,但还是有不少bug,所以不是所有应用程序都可以运行。因此,Facebook准备让最流行的20个开源PHP项目能够运行在HHVM上。第一个已经支持的项目就是Wordpress。不过对于国内的Discuz兼容还不太完美。        除了开发出 HHVM 的 FaceBook 公司外,还有很多其他公司也采用了这个方案,在服务器上用 HHVM 运行 PHP 应用,包括 Wikimedia 和电子商务网站 Etsy。Wikimedia:Wikimedia 拥有大量的教育内容,包括著名的在线百科全书维基百科。维基百科每 个月吸引着近五亿的互联网用户,为了满足这样高级的需求,需要优化服务器的性能,和 PHP相比 HHVM 有一个显著的优点,它可以同时加载多个 SPU 核心, 而 PHP 是单线程语言,不能被并行化。维基百科部署了 HHVM 后,CPU 的负载从50%降到了10%,用户提交编辑时的平均响应时间减少到原来的一半,页面的平均加载时间从原来的1.3秒降到了0.9秒。
 Etsy: 拥有五千四百万用户的 Tesy 同样迫切需要提高服务器性能,Etsy 的工程师对比了HHVM 和 PHP5.4 的性能,发现 HHVM 每秒可以处理280个服务器请求,而对于 PHP5.4,如果每秒的请求数超过了190次,服务器的响应时间就会急剧增加。
官网地址是:http://hhvm.com/ (不过国内无法访问) 标签:facebook开源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值