2013-07-15 11 views
5

C'è una buona pratica (IDE-based?), Un/bash script PHP o qualcos'altro perCome tracciare il tempo di esecuzione di ogni linea/blocco di linee/metodi in PHP?

  • ottenere il tempo di esecuzione di una linea
  • ottenere il tempo di esecuzione di un blocco di linee (per esempio riga 17 a 42)
  • ottenere il tempo di esecuzione di una certa funzione o un metodo

in PHP? Al momento sono bloccato con soluzioni auto-costruite che utilizzano microtime(), ma è un metodo sporco, poco pratico e lento. Sono particolarmente interessato alle soluzioni con i principali IDE PHP come Eclipse, Netbeans, PHPStorm e VIM. Una soluzione perfetta sarebbe uno strumento che tiene traccia di un'intera applicazione e fornisce il tracciamento del tempo di esecuzione per ogni linea, ogni metodo e ogni blocco di azioni personalizzato.

Fornirò 50 taglie per una buona risposta.

+4

Il termine di ricerca di Google magico per quello che stai cercando è un "profiler". Date un'occhiata a http://www.xdebug.org/docs/profiler - tuttavia, sfortunatamente, i consigli sugli strumenti (che è ciò che si riduce a) sono considerati off-topic per SO. – DaveRandom

+1

Sono totalmente in disaccordo con la ragione per cui questa domanda è chiusa, non c'è una risposta basata sull'opinione perché ha chiesto un programma o esiste o no, non so perché vedo delle cazzate e dei ciechi che seguono qui –

+0

@DaveRandom grazie per quell'informazione :) –

risposta

7

Questo è quello che stai cercando: http://xdebug.org/docs/profiler. È possibile configurare netbeans per collegarsi al processo php, piuttosto che eseguire gli script passo dopo passo, guardare il contenuto delle variabili correnti e analizzarne i tempi di esecuzione.

Basta aggiungere DLL per altra estensione php, configurare per php ini:

; xdebug 
zend_extension = "C:\php\v5.4\ext\php_xdebug-2.2.3-5.4-vc9-nts.dll" 
xdebug.remote_enable=on 
;xdebug.remote_log="/var/log/xdebug.log" 
xdebug.remote_host=localhost 
xdebug.remote_handler=dbgp 
xdebug.remote_port=9000 
xdebug.profiler_enable=1 
xdebug.profiler_output_dir="C:\dev\profilling\" 

Netbeans configurazione:

enter image description here

quindi premere CTRL + F5 in NetBeans (debug). Che è possibile eseguire script step by step e guardare attuali valori variabili:

enter image description here

Per sfogliare i profiler generati log uso http://sourceforge.net/projects/precompiledbin/ o http://sourceforge.net/projects/wincachegrind/ in finestre, o http://kcachegrind.sourceforge.net/html/Home.html per Linux.

Problemi correlati