我剛開始使用xdebug來剖析我的應用程序,並立即注意到結果中有些奇怪。顯示require_once
函數中的一個佔用了大約12%的處理時間。在整個應用程序中還有不少其他調用require_once
,並且它們都佔用了不到1%的處理時間。PHP/xdebug探查器require_once性能不佳
表現不佳的require_once
包含的文件與其他文件沒有顯着差異或較大,所以我不確定可能導致問題的原因。有沒有人經歷過這樣的事情?
編輯:想提供一些信息。我正在使用XAMPP進行窗口分析。通常,應用程序在unix框上運行。我還沒有一個簡單的方法將xdebug放到盒子裏,所以我試圖用這種方式來比較結果可能是不可行的。
最後一個編輯:下面是情況下的代碼的想法,幫助(故意含糊其辭的標準CYA法律方面的原因等等等等等等):
這個類的一個用慢包括(test.inc ):
require_once('/xx/yy/zz/dao/basedao.inc');
require_once('/xx/yy/zz/vo/test.inc');
class TestDAO extends BaseDAO {
// bunch of code to handle database records and return VO objects
這是要包含的文件:
require_once('/xx/yy/zz/vo/basevo.inc');
class Test extends BaseVO {
// bunch of properties, getters/setters, that kinda stuff
我有一個內置完全相同的方式不少其他VO/DAO對象,沒有任何ISSU即全部位於相同的相應路徑內。
最後一件事:你提到你不能在你的Linux平臺上進行調試。您可以嘗試在本地PC上創建虛擬機,以便本地運行Linux副本。它可能會讓您更準確地瞭解遠程運行代碼的方式,而不是Windows系統。 – Spudley 2012-07-16 21:52:16
很棒的建議,明天我會試試! – cdwhatcott 2012-07-17 00:58:45
我終於從Linux上的代碼中獲得了一些分析器結果,並且一切都看起來我是如何在第一個地方......:|大部分處理時間都花在您期望的地方,如數據庫調用和磁盤IO。以前突出的包括仍然稍微慢一點,但不是如此巨大的利潤。看起來這個文件是第一個包含其他一些常用文件的,所以它會比較慢一些。從現在開始,我會避免在Windows上進行基準測試,因爲我沒有解釋不同的結果。 – cdwhatcott 2012-07-18 14:55:23