2012-10-25 97 views
1

即使使用PHP自動加載性能比較

spl_register_autoload(function($class) 
{ 
    $file = '/path/to/lib/' . $class; 
    require_once($file); 
    return class_exists($class, false); 
}); 

的XDebug表明,這種封閉(19%),自總成本高於其成本包括(25%)少一點。它比PDO執行()(2%)高10倍。

爲什麼需要這麼多時間?

+0

似乎xdebug將包含文件的代碼作爲閉包的代碼。這就是爲什麼這樣的結果。當修改包含的文件時,我發現它。當我使用APC時,執行時間有所增加。它影響了封閉的自我成本。 – prcu

回答

0

似乎xdebug將包含文件的代碼作爲閉包的代碼。這就是爲什麼會有這樣的結果。 當修改包含文件時,我發現它。當我使用APC時,執行時間增加了。它影響了封閉的自我成本。

1

如果你使用自動加載器,那麼你不應該使用_once函數,因爲它們很慢。使用require($ file)(在我看來,這在你的代碼中是錯誤的,因爲你需要$ class而不是文件)。

+0

$ class是一個錯誤。我正在嘗試所有變體(需要,包含_once和不包含) - 結果相同。 – prcu