Tumblr的PHP 7升級經驗分享
Tumblr一直在尋找新途徑來提高網站的效能。諸如對於頻繁訪問則新增快取、測試新的CDN配置或升級底層軟體。最近,經過團隊的努力,將全部Web伺服器從PHP 5升級到PHP 7。整個升級是一個有趣的過程,並且獲得了很酷的結果。
Tumblr是是目前全球最大的輕部落格網站,也是輕部落格網站的始祖。
這一切開始在2015秋天的HackDay專案。Tumblr已經有執行PHP 7伺服器。在那個時候,相當多的PHP擴充套件還沒有支援7版本,但也有非官方的實驗支援。無論如何,它還是能執行了!
今年春天,事情開始變得更加穩定,我們決定是時候開始更加緊密升級。安裝新版本的軟體包,安裝過程很簡單和一致順暢。由此將內部的PHP擴充套件到新的版本,一切都準備好了。
做像這樣的升級當然需要測試,以確保程式碼的行為是相同的,這點非常重要的時候,我們有幾個方法:
Tumblr是是目前全球最大的輕部落格網站,也是輕部落格網站的始祖。
這一切開始在2015秋天的HackDay專案。Tumblr已經有執行PHP 7伺服器。在那個時候,相當多的PHP擴充套件還沒有支援7版本,但也有非官方的實驗支援。無論如何,它還是能執行了!
今年春天,事情開始變得更加穩定,我們決定是時候開始更加緊密升級。安裝新版本的軟體包,安裝過程很簡單和一致順暢。由此將內部的PHP擴充套件到新的版本,一切都準備好了。
做像這樣的升級當然需要測試,以確保程式碼的行為是相同的,這點非常重要的時候,我們有幾個方法:
Phan,使用它來發現與PHP7不相容的程式碼,並方便修復。
我們也有一套單元測試和整合測試,有助於在確定什麼功能不正常。因為正常的開發過程一直持續著,所以需要確保新程式碼符合PHP7,所以我們在PHP 5和PHP 7中建立了CI的任務執行所有測試。
結果
新語言帶來兩個大的改進:效能和語言特點。
當我們把第一批伺服器升級PHP 7,我們總是密切注意各種圖形,必須確保一切順利執行。正如我們上面提到的,我們一直尋找效能改進,現在現實的結果是驚人的。幾乎立即看到延遲下降一半,伺服器的CPU負載降低至少50%。不僅我們的伺服器服務的網頁快一倍,他們還只使用一半CPU資源。
HP 7還帶來了很多有趣的新功能,可以讓開發者在Tumblr輕鬆一點的生活。一些亮點:
1.標量型別提示:PHP歷來都是相當差的型別安全,PHP 7引入標量型別的暗示保證值的傳遞符合特定的型別(字串、布林、int、float等)。
2.返回型別宣告:現在,PHP 7,函式可以有返回型別,明確的語言將強制執行。這減少了一些樣板程式碼和需要手動檢查函式返回值。
3.匿名類:就像匿名函式(關閉),匿名類是在執行時構造,可以模擬類,符合介面甚至延伸其他類。這些在日誌類別和單元測試中特別有用。
4.各種安全和效能全面增強。
[該貼被admin於2016-11-11 11:26修改過]
相關文章
- Cloudflare 從 PHP 到 Go:遷移與經驗分享CloudPHPGo
- 經驗分享
- 6條經過驗證的創業經驗分享創業
- 經驗分享:從高流量的單體PHP應用到無伺服器PHP伺服器
- 【高中經驗分享】2021.11.29
- Polymer使用經驗分享
- .NET 6 Minimal API 的經驗分享API
- GitHub CSP應用的經驗分享Github
- Netflix採用GraphQL的經驗分享
- 分享抖音交流經驗
- 遊引力出海經驗分享
- 徵求護眼經驗分享
- DDD經驗:分享工作,分享決策 – Jessitron
- PagerDuty的API開發經驗分享 – IncrementAPIREM
- 經驗分享:eBay的API智慧設計API
- 【Kaggle入門級競賽top5%排名經驗分享】— 分析篇
- 【Kaggle入門級競賽top5%排名經驗分享】— 建模篇
- 精益生產經驗分享
- C# 學習經驗分享C#
- 封裝 avm 元件經驗分享封裝元件
- Native轉型Flutter經驗分享Flutter
- 考研經驗分享(上岸南理工)
- TypeScript 重構 Axios 經驗分享TypeScriptiOS
- 經驗分享:HelloFresh在生產中執行Istio的經驗教訓 - Craig HuberAI
- 一份經過時間檢驗的 Laravel PHPUnit 測試經驗分享LaravelPHP
- 我的公眾號寫作經驗分享
- 過來人的自學python經驗分享Python
- 考拉昇級https經驗HTTP
- OB導數工具使用經驗分享
- 企業安全實踐經驗分享
- 分享net面試題和經驗面試題
- MySQL從庫維護經驗分享MySql
- HomeAway分享雲端事件溯源經驗事件
- Android大廠面試經驗分享Android面試
- 【乾貨】BAT面試經驗分享BAT面試
- 寫給初級前端的面試經驗前端面試
- 學習Linux必須掌握的命令!經驗分享Linux
- 分享一些我自己的docker使用經驗Docker
- 李想創業至今20000字的經驗分享創業