程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP__autoload()方法真的影響性能嗎?

PHP__autoload()方法真的影響性能嗎?

編輯:關於PHP編程

介紹
 
 對於php性能問題,議論最多的就是__autoload()方法,很多人提到這個方法非常影響性能。還有人說opcode也能影響到__autoload()方法,所以針對這兩點我做了個測試。
 
最終發現__autoload方法在性能方面的影響不是很大的。有的網友說不用__autoload(),帶來的維護成本比性能成本高無數倍(比較贊同)。
 
 環境
 
 PHP:5.3.9 ——以fastcgi模式啟動
 Nginx:1.1.12
 eaccelerator:0.9.6.1
 
截圖:

 
 啟動界面:

 eAccelerator(在php.ini文件中)配置情況:

  文件結構:(每一個Test文件都是6000多行代碼的文件)

  

測試:帶著eAccelerator緩存進行測試
 
測試代碼:經過__autoload加載 


 
       圖1
我在浏覽器裡通過刷新得到的結果分別如下:
Total Time:0.10401391983032
Total Time:0.10252094268799
Total Time:0.095267057418823
Total Time:0.10013008117676
Total Time:0.096842050552368
Total Time:0.097998142242432
Total Time:0.10348510742188
Total Time:0.096648931503296
  
測試:不經過__autoload() 

 \

                     圖2

測試結果——通過刷浏覽器
Total Time:0.10309100151062
Total Time:0.10285210609436
Total Time:0.10154414176941
Total Time:0.097845792770386
Total Time:0.099545001983643
Total Time:0.10166597366333
 
最終看到的結果:autoload方法沒有出現明顯的性能下降
 
 測試:取消eAccelerator緩存進行測試
 
 圖1的測試結果
Total Time:0.24992394447327
Total Time:0.25681900978088
Total Time:0.25327301025391
Total Time:0.22580695152283
Total Time:0.22656512260437
Total Time:0.22530484199524
Total Time:0.23080611228943
 
 圖2的測試結果
Total Time:0.23054909706116
Total Time:0.22633790969849
Total Time:0.23442888259888
Total Time:0.2350070476532
Total Time:0.22897601127625
Total Time:0.23207712173462
 __autoload()方法在性能上還是沒有明顯的影響。

 總結
 
通過上面的兩組實驗得出:
1>__autoload方法沒有明顯的性能損失。所以大家不要介於使用__autoload方法。
2>opcode對代碼的影響是比較大的,明顯使用opcode的時候,php代碼執行速度提高了將近2倍多。
 


摘自  川山甲

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