首页 > 资讯 > 关键词 > php教程最新资讯 > 正文

【专访 PHP 之父】PHP7 性能翻倍关键大揭露

2015-10-26 17:16 · 稿源:开源社区

20岁老牌网页程序语言PHP,最快将在10月底释出PHP 7新版,这是十年来的首次大改版,最大特色是在性能上的大突破,能比前一版PHP 5快上一倍,PHP之父Rasmus Lerdorf表示,甚至能比HHVM虚拟机下的PHP程序性能更快。

HHVM是脸书为自家网站特性而量身客制的PHP优化机制,不见得适用任何网站。但Rasmus Lerdorf表示,新版目标之一就是要让任何网站开发者,就连使用开发框架Drupal、开源电子商务系统Opencart时,都能有不输使用HHVM技术的性能。在新版发表前夕,他也趁来台参加PHPConf Taiwan年会时,分享PHP 7性能大突破的关键。

一个20年来历经了多次改版和无数次优化的成熟语言,还能有性能提高一倍的突破绝非易事,Rasmus Lerdorf坦言,不像一般新项目多半容易找出许多改进空间,新版PHP并非修改部分程序就达到了如此的成果。反而是,透过大量细节优化和性能累加后,PHP 7才具备了不输HHVM的执行性能。

Rasmus Lerdorf与PHP核心贡献团队花了许多心力减少程序运作时搬动的内存位数,由此加速执行的性能。例如,PHP中储存变量的数据架构zval从24位缩减至16位、Hashtable从72位减少至56位,并检视PHP中的函式,思考有无任何改进性能的空间。

除了从减少内存的使用着手外,Rasmus Lerdorf更检视CPU的Cache line的运作原理,了解程序代码如何与CPU互动、编译程序如何在新CPU架构下编译程序代码等细节,确保PHP 7的程序代码符合现代CPU的架构。虽然每个项目的优化对性能贡献都低于0.5%,但由于优化的项目很多,或是某项改善的功能会被应用程序反复呼叫,整体修正的综效结果就能有如此大的进展。

受HHVM刺激,决定打造兼具性能与功能的PHP。Facebook为了优化PHP运作,搭配JIT编译而打造出虚拟机HHVM。而HHVM虽然拥有快速的执行性能,其为特定用途优化的设计,只能满足小部分的开发者。反之,Rasmus Lerdorf除了想提升PHP的性能表现外,也想要同时满足高端使用者以及业余使用者的需求,让PHP 7成为兼备性能表现及通用功能的程序语言。

然而,开发符合市场上少部分人使用的程序语言并不是难事,但是PHP项目瞄准许多对象,必须同时符合业余使用者及专业开发者需求的原则下,开发难以面面俱到,因为总是会有部分族群的需求无法被满足,「这就像拿水管大范围的喷洒,而每个人衣服都会被水沾湿一点,但是不会有人的衣服完全湿透。」Rasmus Lerdorf比喻。

不使用外挂框架的PHP的运算性能表现都很优异,但是受到外加框架的影响,原本可以在数秒内处理上千个网页要求的PHP,性能大幅下降,变为只能处理数十个要求。Rasmus Lerdorf表示,在HHVM出现之前,相较于对PHP性能表现的要求,使用者比较在意PHP能否降低网页开发的难度,而这些框架能让开发者的工作变得比较简单。但是在Facebook推出HHVM后,引出许多重视PHP性能表现的使用者,让Rasmus Lerdorf意识到许多使用者有性能表现的需求。他开始思考如何将HHVM的JIT架构与PHP融合。

但Rasmus Lerdorf表示,PHP与HHVM两者在架构设计上相当不同,例如,HHVM的多线程架构并不是很稳固。此外,HHVM的可移植性并不佳,离可以在Windows平台上运作还有很大一段路,而PHP有很多开发者在Windows环境开发,而HHVM无法照顾到那些使用者。

Rasmus Lerdorf表示,他不能放弃PHP的主要架构,虽然他们曾经考虑过融合两者,但是,HHVM在使用上有很多的限制。虽然HHVM对Facebook及许多开发者是非常好的工具,但对于PHP项目来说,HHVM的使用范畴还不够宽广,只能符合Facebook或是Wikipedia等特定项目的需求。

非强型别语言的PHP,导入JIT是难上加难。然而,在PHP中加入JIT编译是件非常困难的事情。Rasmus Lerdorf表示,JIT必须学会辨认程序的运作模(Patterns),例如了解哪些部份为重要的程序代码,并且在程序运作前,预测程序被呼叫的时机,或是哪些部分的程序会呼叫。

Rasmus Lerdorf比喻,在许多汽车中,JIT必须能预测哪部分的车子会右转、哪部分的车子会左转或是某些颜色汽车会直行,「而JIT必须要全部预测正确,否则性能会大大的降低。」但是,如果预测正确,程序执行性能则会大大提升。

在一般的程序语言的编译中加入JIT已属不易,Rasmus Lerdorf表示,由于PHP的动态属性(dynamic)让加入JIT是难上加难。他举例,开发者宣告参数$a值为1,但不代表程序所有的$ a的值都为1,由于PHP中参数值可以很轻易地重新定义。在C语言中,当开发者宣告参数a为整数,则a永远为整数。如果程序中有任何地方宣告a是整数以外的类型,连编译都无法执行。而因为C语言此种强型别的程序语言,「JIT可以预测变量a为整数,但是在PHP中,我们没有这种奢侈。」他解释,HHVM的做法为当JIT得知a是整数型别后,则假设a永远为整数。

而HHVM为了在使用JIT编译,某种程度上受限了PHP的发展。HHVM的用户必须清楚宣告变量的性质,但是使用PHP的开发者,可以先宣告没有性质的类别(Class),后续再指定类别的变量属性。「在没有任何限制下,将JIT加入PHP是我们要做的事。」他表示,PHP必须顾及Wordpress、Drupal等框架的开发者,不能任意停止对此些框架的支持。故与HHVM相比,PHP在打造JIT的条件限制更多。

但是,「这不代表我们不能做JIT。此外,我们也要控制PHP的发展走向。」Rasmus Lerdorf表示。

目前,PHP核心贡献者之一的Dmitry Stogov开发一个原型JIT,并且使用某些实验性的应用程序去测试运作。Rasmus Lerdorf表示,如果将此JIT用于执行某些重复性的运算或是循环程序,得以让PHP 7性能又再快上10倍。

不过他也坦承,当此实验性的JIT用于Wordpress时,并未得到任何加速效果,「我们想要打造的JIT不是要在大学课本上学到的东西,而是能在真实世界中运作的JIT。」他表示。因为PHP一直都抱持如此的理想,试图解决人们生活中的问题,并且能真实世界中在线环境中运作,而不只是存在课本中的理论。

Rasmus Lerdorf表示,在PHP刚问世时,他每天至少花16个小时开发PHP。但目前他已经逐渐减少投入开发,转而投注心力在世界各地宣传及演讲。他打趣地表示:「与其自己开发,不如激励远比我聪明,又愿意一天花十八小时写程序的人去开发PHP。」他表示,他的最终目标是PHP中没有任何一行由他所撰写的程序代码,「任何在成长中的项目都不应该由一个开发者主导,老旧的程序代码应该被新的程序代码替换。」而他认为,其他开发者应该以此为目标。

  • 相关推荐
  • 大家在看
  • 用php源码搭建二维码加密支付平台

    今天给大家介绍的项目-"用php源码搭建二维码加密支付平台",可以说,有一定的技术门槛,有一定的壁垒,因为需要搭建网站并且运营。正是因为有一定的门槛,需要学习和准备一些东西,才能挡住大多数用户的进入,才能长久的赚取利润。这些技术门槛,和需要准备的一些东西,我今天会详细的,手把手的教大家,如果你肯学习,并且有一定的网络基础,我相信可以很快突破难点,搭建成功。一旦搭建成功,运用一些推广的手段,后期

  • 苹果或将开发可折叠iPhone 机身圆润无刘海

    据知名苹果爆料大神Jon Prosser透露,苹果正在开发一款可折叠的iPhone原型机。和以往采用一块柔性屏幕折叠的折叠屏手机不同,苹果的可折叠手机是将两个独立的显示面板通过铰链连接,中框为带弧度的不锈钢材质,在设计语言上和目前的iPhone11 差不多,无刘海,但在显示屏外侧有一个 "小小的额头",用于Face ID。不过,该爆料人认为,可折叠的iPhone今年上市的可能性不大。

  • 智能变革:英特尔HPC高性能计算与AI人工智能解决方案和实例

    在竞争日益激烈的环境中,数据中心作为传统信息化的基础,伴随着全面AI时代与5G、物联网的不断临近,企业希望获得出色的模拟和建模、人工智能(AI)和大数据分析功能,以便取得突破性的发现与创新,而高性能计算(HPC)基础设施能够为这些工作负载带来优势。 企业如果想在相同的 HPC 基础设施中运行 HPC、大数据分析和 AI 工作负载,优化的资源调度降低计算成本需要一个全面的融合HPC和AI集群的解决方案。 英特尔? 精选解决方案基于英

  • 现在买iPhone 11还是等iPhone 12?李楠:等iP12

    一年一度的618将于今晚0点正式开启。6月17日消息,一位知友在知乎提问:现在买iPhone 11还是等iPhone 12?目前iPhone 11在各大平台有大幅降价,京东平台iPhone 11 64GB版到手价4599元,拼多

  • 苹果将追踪定位iPhone抢夺者:定位iPhone技术介绍

    据 TMZ 报道称,5 月 25 日 George Floyd 遭遇明尼阿波利斯暴力执法而死亡。一周之后,美国多地发生了激烈的抗议示威活动,苹果 CEO 蒂姆·库克也曾在第一时间表达了对受害者的同情,以及对暴力伤害行为的反对。

  • iPhone SE 2 Plus、iPhone SE 3接踵而至?这可能吗?

    时隔两年,苹果今年终于发布了新款iPhone SE,连名字都懒得变,但是配备最新A13处理器、3299元的价格仍然让很多人大呼真香。那么接下来,iPhone SE又会怎么走?最新曝料称,苹果计划下一步推出

  • 京东iPhone疯狂降价:iPhone 11加899元全额换购iPhone 12

    6月1日开始,各大电商正式进入618大促。近日,京东官方宣布,自6月1日起,iPhone 11直降900元,到手价仅为4599元,同时还有iPhone 8 Plus领券立减600元、XS Max抢券立减500元等特别优惠,价格史

  • 对标新iPhone SE,华为nova7 SE明天发布

    四月份,各大手机品牌争夺激烈,除了高端市场,中端市场亦是如此。4 月 15 日的晚上,苹果官方网站正式上线了一款全系的iPhone SE新机。该机采用了A13 处理器,在硬件性能方面可以跟当下的iPhone 11 Pro Max等机型相媲美。就小编个人来说,这款全新的iPhone SE还是值得入手的,毕竟,市场上可供选择的小屏手机并不多。对于苹果的这款新iPhone SE,有人看好,同样也有人看“哀”。在新款iPhone SE正式上架之后,就有不少媒体和网友?

  • iPhone13机模曝光 手感类似iPhone5S

    近日日本网站Mac Otakara曝光一个5.5 英寸iPhone的3D打印模型,这款iPhone将于 2021 年上市,在苹果的命名中也就是iPhone13系列手机,该网站表示这款机模仅是正在开发的原型机,未来有可能会有变动。

  • iphone如何修改微信号教程方法 苹果手机改微信号条件

    最近微信终于可以修改微信号了,此前安卓手机率先支持修改手机号,现在对于想要更改微信号的苹果手机小伙伴们也可以修改了,不知道怎么修改的小伙伴们,就一起来看看iphone修改微信号方法吧。

  • 趁618买iPhone 11还是等iPhone 12?李楠给出了他的答案

    虽然如今的618的狂欢早已不仅局限于6月18日这一天,而是几乎贯穿6月一整个月,但不可否认,这一天仍将是其中所有人最期盼的狂欢高潮所在。而在热度最高的手机领域,苹果无疑是焦点中的焦点。正如此前预料的,各大平台以iPhone 11系列为代表的多款机型放出了极具竞争力的价格,牢牢吸引了无数用户的目光。

  • iPhone照片怎么添加标题

    苹果iPhone在iOS14系统中加入了给照片添加标题的新功能,这个功能具体是怎么使用呢,以下我们来看下照片添加标题的具体操作方法。

  • 比iPhone 11便宜不少!四款iPhone 12集体现身:命名曝光

    此前,多方权威信源显示,今秋苹果将推出四款iPhone 12机型,包括一款5.4英寸、两款6.1英寸以及一款6.7英寸机型。日前,荷兰T-mobile官网率先公布了iPhone 12的全系命名。相关页面信息显示,今

  • 爆料人透露苹果正开发可折叠iPhone:两块独立屏幕连接 无刘海

    6月16日消息,据国外媒体报道,爆料人乔恩·普罗塞(Jon Prosser)透露,苹果正在开发一款可折叠的iPhone原型机。据悉,这款手机的特点是将两个独立的显示屏通过铰链连接,而不是像三星的可折叠屏手机Galaxy Fold那样只有一个显示屏。普罗塞表示,可折叠的iPhone根本就不是可折叠的设计。这意味着它不会像摩托罗拉的新款RAZR、三星Galaxy Fold和其他一些设备那样拥有可折叠的显示屏。相反,它的设计类似于微软的Surfac

  • 老外大赞iPhone 12系列:全面屏版iPhone 4外形史上最佳

    综合当前比较可靠的消息,今年秋季苹果的年度旗舰iPhone 12系列将依旧提供iPhone 12、iPhone 12Max和iPhone 12 Pro、iPhone 12 Pro Max两个版本共四款机型,而且Wedbush证券最新报道称,iPhone 12的发行将重回“正轨”,依旧选择9月份发布。现在有最新消息,近日有油管博主进一步放出了据称是该机机模的“上手视频”。据国外知名油管博主@iup_date 最新发布的消息显示,与此前曝光的消息基本一致,全新的iPhone 12系列?

  • iPhone13机模曝光 苹果iPhone13机模高清大图

    iPhone12 即将发布,而目前有关于下下代iPhone13 的消息也已经曝光。Macrumors报道,日本网站Mac Otakara近日曝光了一个5. 5 英寸iPhone的3D打印模型,据称该款iPhone将于 2021 年上市。

  • iPhone小组件怎么叠放

    苹果iPhone在iOS14系统中加入了桌面小组件国内,用户可以将应用程序的某个功能单独放置到桌面中,让用户快速启动查看,如何在iPhone上添加桌面小组件呢,以及将小组件进行叠放设置,以下我们来看下具体的操作方法。

  • iPhone画中画怎么开启

    苹果iPhone画中画功能怎么开启,想要使用画中画需要进行什么样的操作步骤,这里我们来一起了解下苹果iOS14画中画功能的开启方法。

  • 哪些iPhone支持iOS14

    iOS14系统预计在6月底的苹果WWDC开发者大会上正式公布,这个新的系统可以支持哪些iPhone手机更新呢,以下我们提前来看下iOS14系统支持的iPhone型号。

  • 苹果将追踪定位iPhone抢夺者

    据外媒报道,华盛顿、洛杉矶、旧金山、纽约和费城等多家苹果商店受到袭击或破坏,抢劫者偷走了所有可用产品。苹果公司警告,被抢劫的手机和电脑等产品均不可被重置,并将追踪定位不法者的位置发送到当地执法部门。

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议