2010-03-05 13 views
8

Ho usato due strumenti di profiling (VTune su windows e dbx (all'interno di sunstudio) su Solaris) che possono profilare il programma senza ricostruirli, e durante la profilazione, il programma funziona alla stessa velocità del normale. Entrambe queste 2 funzionalità mi hanno salvato un sacco di tempo.Come programmare il programma sulla piattaforma Linux senza ricostruire?

Ora voglio sapere se ci sono alcuni strumenti gratuiti disponibili sulla piattaforma Linux possono fare la stessa cosa. Penso di aver bisogno di strumenti di profilazione basati sul campionamento. VTune è buono ma costoso ... Ho sentito parlare di gprof e valgrind. Ma sembra che gprof abbia bisogno di uno strumento per il programma (quindi dobbiamo ricostruire il programma) e valgrind rallenterà molto l'esecuzione del programma. (dall'introduzione di valgrind, Cachegrind esegue programmi di circa 20--100x più lenti del normale, e Callgrind che devo profilare si basa su Cachegrind)

Per il profiling, ho solo bisogno di capire il tempo di esecuzione delle chiamate di funzione quindi può scoprire dove avviene il degrado delle prestazioni. In realtà non ho bisogno di molte informazioni di profilazione di basso livello come fornita da Cachegrind ...

risposta

5

oprofile è piuttosto buono, ma può essere difficile da configurare. Inoltre non richiede di ricostruire il tuo programma.

+0

Sì ... sembra quello di cui ho bisogno .. Ma penso che sia necessario un account di root da configurare, giusto? – superb

+0

Sì, richiede l'installazione di root. Oppure sudo, a seconda di come è impostato il file sudoers. Suggerirei di usare una macchina virtuale, ma fare il profiling in una VM sembra una cattiva idea - i colli di bottiglia durante l'esecuzione in una VM potrebbero non essere gli stessi di quando si esegue su una macchina fisica. Spero tu abbia root sul tuo sistema. – George

+0

Capito. Dopo aver letto alcuni documenti su oprofiler, capisco che è necessario il kernel per raccogliere alcuni contatori hardware in modo da poter profilare il programma velocemente, quindi è necessario un privilegio di root per configurare. Potrebbe non essere facile ottenere l'accesso come root dal momento che stavo usando una macchina pubblica e la profilazione avrebbe avuto un impatto sulle prestazioni di quella macchina. Quindi penso che Valgrind sia l'opzione migliore ... – superb

0

Un'opzione migliore rispetto a oprofile è Zoom. È simile a Shark su Mac OS X, se l'hai mai usato. È commerciale ($ 199), ma è possibile ottenere una prova gratuita da www.rotateright.com.

1

Accettando con Paul, penso che Zoom sia probabilmente il miglior profiler Linux che puoi pagare.

Tuttavia, per real results, mi affido a this simple method, che utilizzo da quando sono stati inventati i profiler.

1

Performance Counters for Linux è un nuovo strumento utilizzabile sui kernel 2.6.31 e successivi; è meno intrusivo (sia per il programma che per il sistema nel suo insieme) rispetto a valgrind o OProfile.

Problemi correlati