PHP的效能探討和測試

來源:互聯網
上載者:User

1.緣起

關於PHP,很多人的直觀感覺是PHP是一種靈活的指令碼語言,庫類豐富,使用簡單,安全,非常適合WEB開發,但效能低下。PHP的效能是 否真的就如同大家的感覺一樣的差呢?本文就是圍繞這麼一個話題來進行探討的。從源碼、應用情境、基準效能、對比分析等幾個方面深 入分析PHP之效能問題,並通過真實的資料來說話。

2.從原理分析PHP效能

從原理分析PHP的效能,主要從以下幾個方面:記憶體管理、變數、函數、運行機制來進行分析。

2.1記憶體管理

類似Nginx的記憶體管理方式,PHP在內部也是基於記憶體池,並且引入記憶體池的生命週期概念。在記憶體池方面,PHP對PHP指令碼和擴充的所有 記憶體相關操作都進行了託管。對大記憶體和小記憶體的管理採用了不同的實現方式和最佳化,具體可以參考以下文檔: https://wiki.php.net/internals/zend_mm。在記憶體配置和回收的生命週期內,PHP採用一次初始化申請+動態擴容+記憶體標識回收機制,並 且在每次請求結束後直接對記憶體池進行重新mask。

2.2變數

總所周知,PHP是一種弱變數類型的語言,所以在PHP內部,所有的PHP變數都對應成一種類型Zval,其中具體定義如下:

圖一PHP變數

在變數方面,PHP做了大量的最佳化工作,比如說Reference counting和copy on writer機制。這樣能夠保證記憶體使用量上的最佳化,並且減 少記憶體拷貝次數(請參考http://blog.xiuwz.com/2011/11/09 /php-using-internal-zval/)。在數組方面,PHP內部採用高效的 hashtable來實現。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.