我用microtime(true)
寫了一個簡單的速度測試腳本。它測試一百萬次迭代以下五種包括方法:
// Absolute path.
include('/home/ftpuser/public_html/includes/myscript.php');
// Predefined path.
define('PATH', '/home/ftpuser/public_html/includes/');
include(PATH . 'myscript.php');
// Relative path.
include('myscript.php');
// Using set_include_path().
set_include_path('/home/ftpuser/public_html/includes/');
include('myscript.php');
// Superglobal path.
include(dirname(__FILE__) . '/myscript.php');
哪個結果如下(單位:秒):
Absolute path: 263.222
Predefined path: 263.545
Relative path: 301.214
Using set_include_path(): 302.396
Superglobal path: 269.631
我基於這些結果的意見是使用預定義的路徑,因爲它是絕對路徑中最快的。但是,絕對路徑的缺點是必須在每個文件中更改必要的更改。
希望這有助於。 :)
P.S.
define
和set_include_path()
在腳本執行過程中僅使用過一次(它們位於循環之外)。
如果你有'ROOT',爲什麼不'set_include_path(get_include_path()。PATH_SEPARATOR.ROOT)'? – chelmertz 2009-11-18 11:18:14
因爲那麼你仍然在搜索包含路徑 - 這種方式沒有涉及搜索。 – Greg 2009-11-18 12:03:35
如果你先放置它,這是一個非常簡單/快速的搜索:'set_include_path(ROOT.PATH_SEPARATOR.get_include_path())'。另外,如果要包含大量文件(可在解答中詳細闡述我的意見),可維護性可能會受到影響。) – chelmertz 2009-11-18 12:10:58