即使使用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倍。
爲什麼需要這麼多時間?
即使使用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倍。
爲什麼需要這麼多時間?
似乎xdebug將包含文件的代碼作爲閉包的代碼。這就是爲什麼會有這樣的結果。 當修改包含文件時,我發現它。當我使用APC時,執行時間增加了。它影響了封閉的自我成本。
如果你使用自動加載器,那麼你不應該使用_once函數,因爲它們很慢。使用require($ file)(在我看來,這在你的代碼中是錯誤的,因爲你需要$ class而不是文件)。
$ class是一個錯誤。我正在嘗試所有變體(需要,包含_once和不包含) - 結果相同。 – prcu
似乎xdebug將包含文件的代碼作爲閉包的代碼。這就是爲什麼這樣的結果。當修改包含的文件時,我發現它。當我使用APC時,執行時間有所增加。它影響了封閉的自我成本。 – prcu