程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP的性能探討和測試

PHP的性能探討和測試

編輯:PHP綜合

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來實現。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved