Ho scritto un semplice script di test di velocità utilizzando microtime(true)
. Mette alla prova i metodi tra cui seguenti cinque con un milione di iterazioni:
// 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');
che ha dato i seguenti risultati (in secondi):
Absolute path: 263.222
Predefined path: 263.545
Relative path: 301.214
Using set_include_path(): 302.396
Superglobal path: 269.631
La mia opinione sulla base di questi risultati è quello di utilizzare un percorso predefinito, perché è il più veloce sorpassato solo da un percorso assoluto. Tuttavia, un percorso assoluto ha lo svantaggio di dover essere modificato in ogni file quando è necessaria una modifica.
Spero che questo abbia aiutato. :)
P.S.
define
e set_include_path()
sono stati utilizzati una sola volta durante l'esecuzione dello script (si trovano all'esterno del ciclo).
Se si ha 'ROOT', perché non' set_include_path (get_include_path(). PATH_SEPARATOR.ROOT) '? – chelmertz
Perché in questo caso stai ancora cercando i percorsi di inclusione, in questo modo non è prevista alcuna ricerca. – Greg
È una ricerca piuttosto semplice/veloce se la si posiziona prima: 'set_include_path (ROOT.PATH_SEPARATOR.get_include_path())'. Inoltre, la manutenibilità potrebbe essere compromessa se ci sono molti file da includere (ho elaborato la mia opinione più in una risposta). – chelmertz