阅读更多
Facebook的PHP改进计划又收获了一款重要产品,近日他们宣布了一个新的开源HipHop虚拟机,能够即时转换PHP代码并在性能上获得重大改进。

大约两年前,Facebook首次推出了HipHop。它是一个源代码转换器,将PHP代码转换为高度优化的C++代码,然后再使用g++编译器编译。HipHop被Facebook广泛运用,其网站所有PHP代码都经HipHop转换过,旗下其他网站也采用HipHop来优化。


不过,最初代码是由一个HipHop静态编译器转换的。即PHP代码先编译成二进制形式,然后再部署。该方法有个重大问题,因为它使得维护及优化代码更加困难,且其增加的几个环节也使得bug更容易进入。

在随后的开发中,Facebook使用了一个可以即时转换的HipHop解释器HPHPi。它比之前的编译器要缓慢得多,但相对于每个变化都得编译的情况要好很多。但这也意味着Facebook需要同时维护编译器和HPHPi两个HipHop工具。

在这种情况下,一个新的HipHop虚拟机(HHVM)诞生了。Facebook的工程师介绍,它是一个PHP的JIT(Just-In-Time)编译器,同时具有产生快速代码和即时编译的优点。Facebook表示,HHVM将替代HPHPi,用于所有的PHP执行。根据Facebook透漏,HHVM在速度方面获得了显著改进,比目前使用的PHP解释器快60%,而使用内存减少90%。

目前Facebook已将该HipHop虚拟机开源,源代码发布在GitHub上。关于该工具的技术原理在Facebook的开发者页面上有一篇详细的文章介绍,查看这里

Via  softpedia

5
0
评论 共 7 条 请登录后发表评论
7 楼 hellolaojiang 2011-12-14 12:37
最初的那个 PHP->C++转换器 就是一个华裔编写出来的。据说花了很短的时间就写出来了。很牛逼,但估计是华裔的原因,很少听FACEBOOK宣传这个给FACEBOOK带来巨大飞跃的人物。
6 楼 lvjinhua 2011-12-14 11:57
真的吗??
5 楼 tron.lu 2011-12-14 11:30
..................LW
4 楼 freespace 2011-12-14 10:24
phper有福了
3 楼 dfar2008 2011-12-14 10:13
能不能直接集成在zend环境里呢?
2 楼 bitray 2011-12-14 08:48
jvm要是根据这个道理优化不知道咋玩了,感觉实在放卫星
1 楼 dieslrae 2011-12-14 01:10
使用内存减少90%.................

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 执行PHP代码的虚拟机HHVM.zip

    HipHop VM(HHVM)是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点。Facebook表示,HHVM将替代HPHPi,用于所有的PHP执行。根据 Facebook...

  • HHVM(HipHop PHP)优化加速PHP代码:搭建提速五六倍的PHP服务器

     EasyHHVM是一个HHVM一键安装脚本,方便大家更容易安装部署HipHop PHP VM(HHVM)软件。EasyHHVM快速部署工具,开源开放此管理部署系统方便大家安装使用,以此和行业共同学习进步。 EasyHHVM开源宗旨  ...

  • 让php飞起来,facebook推出的执行PHP代码的虚拟机HHVM快速搭建指南

    HipHop VM(HHVM)是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点。 Facebook表示,HHVM将替代HPHPi,用于所有的PHP执行。根据 ...

  • HHVM 3.0 发布,执行 PHP 的虚拟机

    HipHop VM(HHVM)是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT(Just-In- Time)编译器,同时具有产生快速代码和即时编译的优点。 Facebook表示,HHVM将替代HPHPi,用于所有的PHP执行。根据 Facebook...

  • PHP7 性能优化与新特性

    PHP是一种在全球范围内被广泛使用的Web开发语言,PHP7 的革新也当然会给这些Web服务带来更深刻的变化。这里引用鸟哥PPT中的一个图表(82%的Web站点有使用PHP作为开发语言): (注:一个web站点可以会使用多种...

  • 微软、谷歌、亚马逊、Facebook等硅谷大厂91个开源软件盘点(附下载地址)

    开源软件中有大量专家构建的代码,大大节省了开发人员的时间和成本,热衷于开源的大厂们总是能够带给我们新的惊喜。2016年9月GitHub报告显示,GitHub已经有超过 520 万的用户...Facebook开源项目负责人曾说过: 一是

  • Facebook 最热门的开源项目推荐!

    来源:开源最前线 猿妹 整编 ...本文为大家整理了 Facebook开源的热门项目,看看有没有感兴趣的,排名顺序按照 Github ★Star 数排列。希望对你有帮助,排名如下: 1构建用户界面的 JavaScript 库 ReactJS

  • PHP 霸主地位被动摇,JIT 是穷途末路后的绝地反击?

    Facebook 开源的 PHP 虚拟机 HHVM(HipHop Virtual Machine) 就采用了 JIT,这让他们的 PHP 性能测试结果提升了一个数量级,也让开发者意识到 JIT 是一项点石成金的强大技术。HHVM 也是目前最热门的带 JIT 编译器的...

  • PHP语言的革新----PHP7和HHVM

    最近在微博上看见PHP的开发者发布的微博(@Laruence),PHP7很可能在明年出来,同时会伴随着很多底层的优化。这真是一个重磅的消息!PHP的发展又将翻开新的一页了。而目前的PHP5.6 release,就是PHP5系列的最后一个...

  • PHP版本升级了旧代码怎么办?编程语言PHP还有未来吗?[图]

    任何一个大项目都是从小项目发展起来的,在这个过程中,基于性能提升的需要,常常需要对服务器进行升级,包括对PHP版本的升级,比如,将PHP的版本从PHP5升级到PHP7。由于升级PHP版本,常常会有部分语法不能向下兼容...

  • PHP7和HHVM的性能之争介绍

    本博文曾发于CSDN:【问底】徐汉彬:PHP7和HHVM的性能之争PHP语言的排名变化 根据“TIOBE编程语言排行榜”(榜单虽然统计方式有局限,但是仍然不失为一个比较好的参考),2010年PHP最高曾经在世界编程语言中排名第...

  • 日请求亿级的QQ会员AMS平台PHP7升级实践

    AMS是一个主要采用PHP语言实现的活动运营平台, CGI日请求3亿左右,高峰期达到8亿。然而,在之前比较长的一段时间里,我们都采用了比较老旧的基础软件版本,就是PHP5.2+Apache2.0(2008年的技术)。尤其从去年开始,...

  • [转]日请求过亿的Web系统PHP7升级实践

    日请求过亿的Web系统PHP7升级实践

  • PHP 5.6,7.0,7.1,7.2 和 HHVM 运行效率比较

    PHP 5.6,7.0,7.1,7.2 和 HHVM 运行效率比较 我们每年都会尝试深入了解不同版本的 PHP 和 HHVM 在各种平台的性能基准。 今年,我们全面对 20 种不同平台/配置中的四种不同的 PHP 引擎和 HHVM 进行了基准测试; 包括 ...

  • [转]PHP7革新与性能优化

    PHP已经走过了20年的历史,直到今天,PHP7都发布了RC版,据说,PHP7正式版应该会在2015年11月份左右发布。PHP7对于上一个系列的PHP5.*,可以说是一个大规模的革新,尤其是在性能方面实现跨越式的大幅提升。

  • [转]徐汉彬:PHP7和HHVM的性能之争

    最近,PHP7和HHVM的性能之争成为了一个讨论热点,它们都在提升PHP执行性能方面取得了突破性的进展。这篇文章,参考了两个社区的技术新进展,为大家科普和介绍它们的性能之争。 PHP语言的排名变化根据“TIOBE编程...

  • Facebook已将HHVM/JIT用于其开发和产品中

    Facebook宣布,他们已经在产品中使用了HHVM这款支持JIT编译的HipHop虚拟机,这种方案统一了开发和部署两种环境,同时为开发者带来了显著的性能收益。\因为页面加载的性能问题,Facebook决定实现一套从PHP向C++转换的...

  • Java-美妆神域_3rm1m18i_221-wx.zip

    Java-美妆神域_3rm1m18i_221-wx.zip

  • 51单片机的温度监测与控制(温控风扇)

    51单片机的温度监测与控制(温控风扇)

  • 电赛案例,C++简单的智能家居系统,其中包含了温度监测、光照控制和报警系

    电赛案例,C++简单的智能家居系统,其中包含了温度监测、光照控制和报警系统。该系统可以: 监控室内温度:当温度超过设定阈值时,触发警报。 自动调节光照:根据光线传感器的值自动调节LED灯的亮度。 入侵检测:通过红外传感器检测入侵,并触发警报。

Global site tag (gtag.js) - Google Analytics