Domanda

L'ottimizzazione del codice PHP tramite benchmarking di runtime è semplice. Tieni traccia di $ start e $ end times tramite microtime () attorno a un blocco di codice - Non sto cercando una risposta che implichi l'utilizzo di microtime ().

Quello che vorrei fare è misurare il tempo impiegato da PHP per prepararsi a eseguire il suo codice - code-parse / op-code-tree-building time. Il mio ragionamento è che mentre è facile includere () ogni classe di cui potresti avere bisogno per ogni pagina che hai su un sito, il sovraccarico della CPU non può essere " gratuito " ;. Mi piacerebbe sapere come "costoso" il tempo di analisi è davvero.

Suppongo che una cache del codice operativo come APC non sia non parte dello scenario.

Sarei corretto che la misurazione del tempo di analisi in PHP sia qualcosa che dovrebbe avvenire in mod_php?

MODIFICA : se possibile, prendere in considerazione l'utilizzo di $ _SERVER ['DOCUMENT_ROOT'] nel codice. Le soluzioni di comando potrebbero richiedere un po 'di armeggiamento per farlo (ma essere comunque risposte preziose).

È stato utile?

Soluzione

Sì. C'è.

<?php return; rest of the code ?>

o

<?php whole code; $%^parse erorr!@! ?>

e quindi confrontare il tempo di esecuzione dello script vuoto

time php empty.php

con il tempo necessario per eseguire (o fallire) lo script regolare con le aggiunte che ho menzionato sopra:

time php test.php

Ho usato questo metodo su file di grandi dimensioni e PHP5.3 su Core2Duo 2.4Ghz può analizzare tra 1,5 e 4,5 MB di codice PHP al secondo (dipende molto dalla complessità del codice ovviamente).

Altri suggerimenti

Per il livello dettagliato di analisi che stai cercando, sembra che l'implementazione di Xdebug ( http://xdebug.org/ ) ti darebbe la massima informazione senza dover tagliare il tuo codice in pezzi segmentati.

Un metodo potrebbe essere il cronometraggio dell'esecuzione dello script dalla riga di comando.

Ad esempio in Linux:

$ time php5 -r 'echo "Hello world";'
Hello world
real    0m1.565s
user    0m0.036s
sys     0m0.024s

Questo aiuta a tutti? Forse è utile per scoprire tempi relativi tra diversi script, ma potrebbe non essere indicativo del tempo impiegato attraverso il modulo Apache

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top