2012-02-27 98 views
0

只是想知道...是嗎?多少加載不使用的.php文件是否會影響性能?

像其中包括20個.php文件,但沒有實際使用類(它們可能會被使用)。

+1

這可能會花費你一點的性能,這取決於你的系統和它們有多大。你必須自己衡量它的成本。您可以使用[自動加載](http://php.net/manual/en/language.oop5.autoload.php)按需加載文件 – 2012-02-27 01:15:28

+0

這就是爲什麼設計模式與加載程序一起存在,是的,它確實影響性能:速度(包含)和內存(包含文件內容) – 2012-02-27 01:16:00

回答

2

我會給一個輕微變種回答這個:如果你是在一個調整VPS或專用服務器上運行

  • :微不足道的金額。
  • 如果您在共享主機服務上運行:它可能會顯着降低腳本執行時間的性能。

爲什麼?因爲在第一種情況下,您應該配置一個PHP操作碼緩存,例如APC或Xcache,實際上,這可以消除腳本加載和編譯開銷。即使在文件需要讀取或統計檢查的情況下,如果(虛擬)服務器專用於應用程序,元文件和文件數據也將「熱」,因此大部分緩存在文件系統緩存中。

在共享服務上,所有事情都在相反的方向上運行:PHP在用戶UID中作爲每請求圖像運行;沒有操作碼緩存解決方案支持這種模式,所以一切都需要編譯。這裏的殺手是需要閱讀文件,許多(可能是大多數)共享的LAMP託管提供商使用LAMP層的可擴展服務器場,並在共享的NFS安裝的NAS基礎設施上使用用戶數據。由於這些NFS掛載的時間少於1分鐘,所以I/O請求將需要RPC離線服務器。我的博客文章提供了一些基準here。共享IIS主機模板的詳細信息是不同的,但淨效果是類似的。

我在我的共享服務上運行phpBB論壇軟件包,並通過聚合源代碼包含的公共集合大致減半了響應時間,正如我描述的here

2

是的,雖然多少取決於一些事情。如果您使用的是PHP加速器,性能成本不會太高,但如果您不是這樣,會顯着減慢速度。你最好的選擇是使用自動加載,所以你只需要在實際使用時加載一些東西,而不是加載所有東西以防萬一。這也可能會減少你的內存消耗。

2

當然這會影響性能。你在PHP中所做的一切都是。

性能的多少取決於它們的數據量,執行它們需要多長時間,或者在類的情況下讀取它們。

如果你不使用它們,爲什麼包括它們?我假設你使用了一些主引擎文件或頭文件,並且應該重新思考包含文件的方法。

編輯:或@Pekka指出,你可以自動加載類。