Questa cosa mi ha incuriosito e così ho fatto alcuni semplici test usando proprio gli esempi di codice da te postati e ho ottenuto risultati assai differenti da quanto dici.Originariamente inviato da daniele_dll
2° Interpretare PHP è due volte e passa più lento di leggere un file di testo ed eseguire svariate operazioni
ad es... un file php che contiene
è 2 volte + lento di una cosa di questo tipocodice:$array = array( 'main' => 1, 'header' => 2, 'body' => 3, 'templates' => 4, 'structure' => 5, 'footer' => 6 );
un file che contiene la lista
e un file che interpreta il contenuto mettendolo in un'arraycodice:main,1 header,2 body,3 templates,4 structure,5 footer,6
codice:$content = file('list.dat'); while(list(, $value) = each($content)) { if (!$value) continue; list($key, $line) = explode(',', $value); $array[$key] = $line; }
Sulla mia macchina facendo 10000 include del file .php contenente l'array, ci mette in media 12 secondi e spiccioli.
Usando il secondo metodo (dati nel file .txt), quello che tu dici essere più veloce, iterando lo stesso procedimento 10000 volte ci mette in media 16 secondi.
Quindi, contrariamente alle aspettative, è circa un 33% più lento.
Ho pensato "magari è perchè c'è poca roba dentro, vediamo se aumentando i dati elaborati il discorso cambia".
Così nel file con l'array ho ripetuto la dichiarazione dello stesso 8 volte. Stessa cosa nel file di dati, ho ripetuto le righe di testo 8 volte.
Stesso numero di iterazioni: 10000.
L'inclusione del file php ci mette in media 20 secondi.
La lettura del file di dati 27, quasi 28 secondi.
Circa un 35% più lento, sembrerebbe quindi addirittura peggiorare all'aumentare dei dati.
Non so, magari ho sbagliato qualcosa io nei test, però i dati sembrano contrastare con la tua ipotesi.![]()