电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

[譯] 又一個(gè)升級到 PHP 7 后性能提升 50% 的案例:Tumblr

瀏覽:97日期:2022-09-11 15:37:15

導(dǎo)讀:PHP 7 發(fā)布有一段時(shí)間了,業(yè)界有一些公司已經(jīng)嘗試在線上大規(guī)模使用這個(gè)版本了。 Tumblr 也從 PHP 5 升級到 PHP 7,他們碰到了什么問題,又是怎么處理的,PHP7 這個(gè)版本又給 Tumblr 帶來了什么?相關(guān)的經(jīng)歷對類似需求的團(tuán)隊(duì)會(huì)有很多啟發(fā) 。

在 Tumblr,我們一直在尋找新方法來提高網(wǎng)站的性能。 這意味著在關(guān)鍵路徑大量使用緩存,測試新的 CDN 配置或升級底層軟件。

最近,在團(tuán)隊(duì)的努力下,我們將整個(gè) Web 服務(wù)器從 PHP 5 升級到 PHP 7,整個(gè)升級過程非常有意思,因此通過本文分享如下。

升級的過程

這一切都開始于 2015 年秋天一個(gè) hackday 項(xiàng)目。@oli 和 @trav 在 Tumblr 運(yùn)行一個(gè) PHP 7 rc 版本。在那時(shí)候,很多 PHP 擴(kuò)展都還不支持PHP 7,但有非官方的分支保證實(shí)驗(yàn)性支持。盡管這樣,Tumblr 已經(jīng)可以運(yùn)行在 PHP7 上了!

今年春天,Tumblr 可以更加穩(wěn)定的運(yùn)行在 PHP7 上,我們決定開始升級。我們做的第一件事是打包新版本,以便更容易安裝并保證一致。與此同時(shí),我們將內(nèi)部 PHP 擴(kuò)展移植到新版本,所以一切都準(zhǔn)備好了。

我們編寫了一個(gè)可以升級(或降級)服務(wù)器的小腳本。然后,在春季及夏季,一直都在運(yùn)行測試并進(jìn)行性能監(jiān)測和評估。隨著時(shí)間推移,我們開始在更多開發(fā)人員日常使用的機(jī)器里運(yùn)行PHP 7。

最后,在 8 月底,我們對測試結(jié)果感到滿意,于是將 PHP 7 替換到我們一小部分生產(chǎn)服務(wù)器。兩個(gè)星期后,所有線上服務(wù)器都已更新到 PHP7。

測試與持續(xù)集成

當(dāng)進(jìn)行這樣的升級時(shí),用測試以確保代碼正確運(yùn)行是非常重要的,我們有幾個(gè)方法。

在這個(gè)項(xiàng)目中,我們使用 Phan 尋找代碼庫中與 PHP 7 不兼容的代碼。

Phan:https://github.com/etsy/phan

我們還有一套單元和集成測試,幫助我們識(shí)別有問題的模塊。 由于項(xiàng)目開發(fā)還在進(jìn)行中,我們需要確保沒有添加 PHP7 不兼容的新代碼,所以我們設(shè)置了持續(xù)集成的任務(wù),同時(shí)在 PHP5 和 PHP7 環(huán)境下運(yùn)行所有測試。

升級結(jié)果

最終的結(jié)果是什么? 性能和語言特性對我們來說是最重要的兩個(gè)結(jié)果。

性能

當(dāng)我們在第一批服務(wù)器上運(yùn)行 PHP7 時(shí),我們非常密切地關(guān)注各種性能監(jiān)控圖表,以確保運(yùn)行順利。 正如我們上面提到的,我們正在進(jìn)行性能改進(jìn),實(shí)際上的升級結(jié)果是非常驚人的, 延遲減少一半,并且服務(wù)器上的 CPU 負(fù)載降低了 50% 或者更多 。不但頁面響應(yīng)速度提高了一倍,而且只使用了一半的 CPU 資源。

[譯] 又一個(gè)升級到 PHP 7 后性能提升 50% 的案例:Tumblr [譯] 又一個(gè)升級到 PHP 7 后性能提升 50% 的案例:Tumblr

這些是來自我們的API服務(wù)器的圖。 如您所見,延遲下降到不到一半,峰值負(fù)載平均值現(xiàn)在低于之前的最低點(diǎn)!

語言特性

除此之外,PHP 7 也帶來了很多有趣的新功能。 一些亮點(diǎn)是:

標(biāo)量類型提示:PHP 歷史版本在類型安全方面相當(dāng)差,PHP 7 引入標(biāo)量類型提示( Scalar type ),確保傳遞的值符合特定類型(字符串,bool,int,float等)。

返回類型聲明:現(xiàn)在,使用 PHP 7,函數(shù)可以有顯式返回類型。 這減少了對樣板代碼和手動(dòng)檢查函數(shù)返回值的需求。

匿名類:與匿名函數(shù)(閉包)非常類似,匿名類在運(yùn)行時(shí)構(gòu)建,可以模擬類/接口甚至擴(kuò)展其他類。 這些對于像日志類這樣的實(shí)用對象非常有用,并且在單元測試中非常有用。

各種安全和性能增強(qiáng)。

總結(jié)

PHP7 相當(dāng)棒。

以下是國外網(wǎng)站一些網(wǎng)友評論。

jsjohnst :

我沒有參與這個(gè)升級過程,但在基于我對 Tumblr(過去在那里工作了 3 年)代碼庫的了解,以及個(gè)人對 PHP 的背景(一直是 PHP 貢獻(xiàn)者?13 年),性能提升有 95% 的可能性與 PHP7 相關(guān)。 Chorus (Tumblr 內(nèi)部基于的框架) 中使用的許多模式和在代碼庫,都會(huì)在 PHP7 內(nèi)部的變化中受益匪淺。

tyingq:

從 PHP5.x 切換到 PHP7 時(shí),在響應(yīng)時(shí)間,TPS 和內(nèi)存使用方面的顯著改進(jìn)

https://www.symfony.fi/entry/symfony-benchmarks-php-56-hhvm-and-php-7

uses:

我們使用的 PaaS 云平臺(tái)最近升級了一個(gè) PHP 7。

對于運(yùn)行 Bolt 的網(wǎng)站(一個(gè)PHP CMS,它大量使用自動(dòng)加載類),我們看到性能提高了 45% ~ 55%。 對于 Wordpress,它是約 30 ~ 40%。

bkanber :

我覺得也可能是因?yàn)?PHP7 默認(rèn)啟用了 opcache,而之前并沒有啟用。

也就是說,更快的解析器和 intepreter 也會(huì)做更快的自動(dòng)加載,所以即使不是opcache,也可能是憑借自動(dòng)加載類被解釋得更快。

nikic:

我們在 7.1 版中 perf 顯示在實(shí)際應(yīng)用中沒有看到顯著的收益(對計(jì)算密集型代碼有一些改進(jìn),比如循環(huán)中的計(jì)算)。

JIT 是否會(huì)對應(yīng)用程序帶來重大改進(jìn)尚不清楚,我們希望如此。

boulos:

對,我很久以前也對比過,大多數(shù)的性能改進(jìn)來自于運(yùn)行時(shí)的 C 代碼改進(jìn),比如在實(shí)際運(yùn)行的系統(tǒng)中,產(chǎn)生較少的字符串副本非常關(guān)鍵。這是你在 PHP 7 改進(jìn)中首先看到的。

使用 PHP 從字節(jié)碼解釋器生成 x86 機(jī)器碼將意味著在你不結(jié)束“跳出”的地方,你應(yīng)該看到更接近 C 代碼性能(JavaScript,Python 等同樣如此)。PHP7 的標(biāo)量類型提示和其他一些小調(diào)整(有意義的)應(yīng)該使 jit 編程一個(gè)更容易的任務(wù)(對比從 PHP 5.4 到 PHP7)。類型推理是非常有效的,在實(shí)踐中(見Paul Biggar對此的優(yōu)秀論文),在 PHP 程序中確實(shí)沒有那么多的多態(tài)性。函數(shù)的參數(shù)通常有一個(gè)或兩個(gè)類型,或者它們實(shí)際上是多態(tài)的并有跟多的變體。

progforlyfe

沒錯(cuò),最大的性能改進(jìn)是來自類似 JIT 改進(jìn), 跟 HHVM 所做的工作類似。

tiffanyh:

我很困惑,PHP 7 現(xiàn)在沒有 JIT,但它的性能已經(jīng)與 HHVM(它有JIT)一致。

然后就是說 PHP 8(與JIT)將顯著快于 HHVM?

TazeTSchnitzel :

未必,這可能意味著很多 HHVM 的性能改進(jìn)與 JIT 無關(guān)。

來自:http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=2653547882&idx=1&sn=12512269ddb4743c6c7978277643d28b&chksm=813a7cf2b64df5e406ad8ebee973da19d330b3785a134af577883e5f725fa28884d070ed9cf7&mpshare=1&scene=1&srcid=1115vhT3jmCZQ5qd7jtLKtf6&from=groupmessage&isappinstalled=0

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 低气压试验箱_高低温低气压试验箱_低气压实验箱 |林频试验设备品牌 | 定制防伪标签_防伪标签印刷_防伪标签厂家-510品保防伪网 | 天津市能谱科技有限公司-专业的红外光谱仪_红外测油仪_紫外测油仪_红外制样附件_傅里叶红外光谱技术生产服务厂商 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 耐磨陶瓷管道_除渣器厂家-淄博浩瀚陶瓷科技有限公司 | 智能门锁电机_智能门锁离合器_智能门锁电机厂家-温州劲力智能科技有限公司 | 香港新时代国际美容美发化妆美甲培训学校-26年培训经验,值得信赖! | 课件导航网_ppt课件_课件模板_课件下载_最新课件资源分享发布平台 | SMC-SMC电磁阀-日本SMC气缸-SMC气动元件展示网 | 安徽成考网-安徽成人高考网 | 河南正规膏药生产厂家-膏药贴牌-膏药代加工-修康药业集团官网 | 背压阀|减压器|不锈钢减压器|减压阀|卫生级背压阀|单向阀|背压阀厂家-上海沃原自控阀门有限公司 本安接线盒-本安电路用接线盒-本安分线盒-矿用电话接线盒-JHH生产厂家-宁波龙亿电子科技有限公司 | 冷轧机|两肋冷轧机|扁钢冷轧机|倒立式拉丝机|钢筋拔丝机|收线机-巩义市华瑞重工机械制造有限公司 | 安全阀_弹簧式安全阀_美标安全阀_工业冷冻安全阀厂家-中国·阿司米阀门有限公司 | 郑州大巴车出租|中巴车租赁|旅游大巴租车|包车|郑州旅游大巴车租赁有限公司 | 能耗监测系统-节能监测系统-能源管理系统-三水智能化 | AR开发公司_AR增强现实_AR工业_AR巡检|上海集英科技 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 罐体电伴热工程-消防管道电伴热带厂家-山东沃安电气 | 油漆辅料厂家_阴阳脚线_艺术漆厂家_内外墙涂料施工_乳胶漆专用防霉腻子粉_轻质粉刷石膏-魔法涂涂 | 轻型地埋电缆故障测试仪,频响法绕组变形测试仪,静荷式卧式拉力试验机-扬州苏电 | 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 代理记账_免费注册公司_营业执照代办_资质代办-【乐财汇】 | 大型工业风扇_工业大风扇_大吊扇_厂房车间降温-合昌大风扇 | CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | 巨野电机维修-水泵维修-巨野县飞宇机电维修有限公司 | 航空障碍灯_高中低光强航空障碍灯_民航许可认证航空警示灯厂家-东莞市天翔航天科技有限公司 | 西装定制/做厂家/公司_西装订做/制价格/费用-北京圣达信西装 | 高扬程排污泵_隔膜泵_磁力泵_节能自吸离心水泵厂家-【上海博洋】 | 耐磨焊丝,堆焊焊丝,耐磨药芯焊丝,碳化钨焊丝-北京耐默公司 | 【灵硕展览集团】展台展会设计_展览会展台搭建_展览展示设计一站式服务公司 | 翰香原枣子坊加盟费多少钱-正宗枣核糕配方培训利润高飘香 | 钢格栅板_钢格板网_格栅板-做专业的热镀锌钢格栅板厂家-安平县迎瑞丝网制造有限公司 | 闪电优家-卫生间防水补漏_酒店漏水渗水维修_防水堵漏公司 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 油漆辅料厂家_阴阳脚线_艺术漆厂家_内外墙涂料施工_乳胶漆专用防霉腻子粉_轻质粉刷石膏-魔法涂涂 | 汕头市盛大文化传播有限公司,www.11400.cc | 北京公积金代办/租房发票/租房备案-北京金鼎源公积金提取服务中心 | 国标白水泥,高标号白水泥,白水泥厂家-淄博华雪建材有限公司 |