价值无处不在,世界财经资讯媒体平台。
手机版
访问手机版
世界总裁网 首页 头条资讯 滚动资讯 新闻内容

揭秘HipHop项目 PHP程序大提速

发布时间: 2013-6-29 20:13| 发布者: fagao| 查看: 1216| 评论: 0

摘要: 编程功率高是PHP言语最大的特色,可是作为脚本言语,一向存在着CPU和内存运用功率不高的疑问,直到HipHop for PHP的呈现。Facebook奥秘的PHP项目HipHop for PHP总算掀开面纱。这个项目由一个PHP到C++的变换程序,一 ...

编程功率下是PHP行语最年夜的特征,但是做为剧本行语,一贯存正在着CPU战内乱存使用功率没有下的疑问,曲到HipHop for PHP的显现。Facebook奥妙的PHP项目HipHop for PHP总算翻开里纱。那个项目由一个PHPC++的变更法式,一个重新结束的PHP运转库,战很多经常使用PHP扩展的重写版别组成,企图是旨正在放慢战劣化PHP

Facebook民圆专客(没法间接造访)上项目卖力人赵海仄(北年夜1987届遗传取份子死物专业,普林斯顿计较机科教专士)的话道,HipHop项目对Facebook影响无量。它当前现已支持了Facebook 90%Web流量。由于HipHopFacebook Web效力器上的CPU使用平均削减了50%,然后年夜年夜削减了效力器的需求。为了让那一改进也惠及社区,他们决定将之开源,希冀可以进一步辅佐前进更多年夜型混乱PHP网站的可伸缩性。

PHPFacebook的疑问

尽人皆知,Facebook的前端主要是用PHP写的。赵海仄道,畴昔六年FacebookPHP行语的开展上获益很多。PHP非常简单,易教易用,好读好调试,因此新工程师发展很快,有益天增进了Facebook的更快的创新。

PHP是一种剧本行语,其优点是编程功率下,可以支撑商品的快速迭代。但是取传统的编译行语比力,剧本行语的CPU战内乱存使用功率不好。随着Ajax手艺的普遍选用,减上SNS对静态需求较下,那些缺点更隐得出色。闭于每个月逾越4000亿次PVFacebook来讲,如何结束扩展,出格具有应战性。

常睹的法子是间接用C++重写PHP使用中比力混乱的有些,做为PHP扩展。实践上,PHP便改变为一种胶火行语,跟尾前端HTMLC++使用逻辑。从手艺视面讲那也出有疑问,但是增长了手艺需求,可以正在全部使用上功课的工程师数目便年夜年夜削减了。进修C++仅仅编写PHP扩展的第一步,接下去借要理解Zend API。由于Facebook的工程团队较小,每一个工程师要支撑100万以上的用户。有些代码没有是团队里每一个人皆能看懂,那闭于Facebook是没法接受的。

Facebook网站自己的可伸缩性更具应战性,由于几乎每次页里浏览皆是有本性化领会的登任命户倡议。浏览主页 时,系统需求查询统统兄弟、兄弟最主要的情况更新、 根据隐公设置选择功效,然后借要闪现议论、相片等等静态,那统统皆需求正在一秒内乱结束。

 

2007年以去,Facebook曾写过几种没有不异法子处置那些疑问。其间包罗用另外一种行语重写Facebook,但是由于开辟的混乱性战速率等启事,已能结束。他们借重写了PHP的中间有些Zend引擎,并提交给了PHP项目,但末端还是出有获得所需的服从。终极,他们选择了HipHop,总算称心如意。

有了HipHop,工程师可以编写代码,用PHP编写组开终极页里的逻辑,并可以连续快速迭代,一同后端效力使用C++, Erlang, Java, Py thon编写,供应消息概要、查找、谈天战其他中间服从。

HipHop开辟故事

赵海仄走漏,项目开端是去自几年前Facebook公司一次Hackathon举动(职工正在一个早晨自在阐扬,实验新的主张),他技术将PHP变更为C++代码,虽然语法上很类似,但是不管是CPU还是内乱存使用,变更后的C++代码皆年夜年夜劣于PHP。以是他念,如果构建一个别系,编程结束变更,会如何样呢?

正在此之前,现已有了很多改进PHP服从的法子。Zend引擎正在运转时变更PHP源代码为运转正在Zend假造机上的opcode。开源项目APCeAccelerator将输出缓存,为年夜大都PHP网站所使用。别的,另有Zend Server如许的贸易商品,颠末opcode劣化弛缓存,前进PHP速率。赵海仄选择了另外一条路途,将PHP间接转为C++,然后再成为当地机械码。固然,有很多开源项目也是不异的思绪,Roadsendphc编译为CQuercus编译为Java,而Phalanger编译为.NET

Hackathon以后8个月,赵海仄拿出了本型,足以分析那条路可以走通,编译后的代码的确更快。没有暂,Iain ProctorMinghui Yang参与出去。接下去又开辟了10个月,正在生产效力器上测试了6个月。然后正式上线安插,6个月以后,Facebook 90%以上的Web流量皆使用了HipHop

按赵海仄的道法,仰仗HipHopFacebook Web效力器上的CPU使用平均削减了50%,然后年夜年夜削减了效力器的需求php培训。项目对Facebook影响无量。为了让那一改进也惠及社区,他们决定将之开源,希冀可以进一步辅佐前进更多年夜型混乱PHP网站的可伸缩性。

HipHop的道理

HipHopPHP代码变更为下度劣化的C++代码,然后再用g++编译器编译。它可以对峙语义等效天实行源代码,但为了前进服从,献身了一些很罕用到的特征,例如eval()

HipHop开辟中的主要困难正在于,正在PHPC++那两种很没有不异的行语之间如何结束变更。虽然PHP也可以写一些很巧妙的静态特征,但是年夜大都PHP代码还是非常简单的。if (...) {php视频教程...} else {..} foo($x) { include $x; } 肯定更常睹。那为服从前进供应了机会。HipHop天生的代码尽量天使用函数战变量的静态绑定。一同,借使用范例推演去选出变量最能够对应的某个范例,然后节省内乱存。变更历程分三步:

1. 静态分析。汇集声明联络战依托联络等疑息。

2. 范例推演。选择最适宜的范例,是C++的标量?还是String, Array, classes, Object大概Variant

3. 代码天生。年夜有些间接将PHP句子战表达式对应为C++的句子战表达式。

正在开辟历程中,另有一个副商品:HPHPi,是一个实验性的讲解器。颠末它,没有编译PHP源代码也可以运转。它现已用于HipHop自己的调试中。HipHop正在对峙了PHP优点的一同,也兼得了C++的服从劣势。项目统共有30万止代码,5000多个单位测试。统统那些皆将以PHP开源答应证方法公布到GitHub

本文章内乱容滥觞:新程PHP培训 http://www.phppx.com

  • 粉丝
  • 1216
    阅读
  • 0
    回复

关注世界总裁网

扫描关注,了解最新资讯

实时了解财经信息
掌握市场风云动态
助力商场共赢至胜
改变你所看到的世界
热门资讯
排行榜

关注我们: 微信订阅&APP下载

发现价值 创造价值

WNCEO.COM

世界总裁网版权所有 未经世界总裁网书面授权禁止复制或建立镜像内容

Email: service@wnceo.com 电话: 010-86398086 / 400-848-6648

地址: 北京市朝阳区广渠路36号首城国际大厦10层 邮编: 100010

Copyright  ©2008-2025 世界总裁网All rights reserved. 工信部许可备案号:京ICP备12045339号-2