大話系列

1. PHP性能問題

關於PHP,很多人的直觀感覺是PHP是一種靈活的腳本語言,庫類豐富,使用簡單,安全,非常適合WEB開發,但性能低下。

從原理分析PHP的性能,主要從以下幾個方面:內存管理、變量、函數、運行機制、網絡模型來進行分析。內存管理:使用類似於Nginx的內存池。 變量、函數:使用hashtable進行查找。運行機制:先編譯成中間碼再執行,類似於java。網絡模型:使用libevent。

分析:從上面分析來看,在基礎的內存管理、變量、函數、運行機制、網絡模型方面,PHP本身並不會存在明顯的性能差異,但由於PHP的動態運行特性,決定了PHP和其他的編譯型語言相比,所有的變量查找、函數運行等等都會多一些hash查找的CPU開銷和額外的內存開銷,至於這種開銷具體有多大,可以通過後續的基準性能和對比分析得出。

因此,也可以大體看出PHP不太適合的一些場景:大量計算性任務、大數據量的運算、內存要求很嚴格的應用場景。如果要實現這些功能,也建議通過擴展的方式實現,然後再提供鉤子函數給PHP調用。這樣可以減低內部計算的變量、函數等系列開銷。

PHP與C/C++的對比:在真實業務項目中,影響性能更多的不是說採用了什麼語言,而是其業務相關的部分,比如說socket交互次數,比如說字符串處理,也比如說網絡交互包大小。通測試可以看出,在一個業務模塊中,影響最大的是socket數據交互,其次是大量的字符串處理。具體細分來說是以下幾個因素:socket交互次數、socket交互包大小、socket交互響應時間、字符串處理。

結論:基於C語言實現的大部分業務系統都可以考慮遷移到PHP上來,一方面能夠快速開發,另外一方面性能也不會存在問題。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章