Domanda

Shark su Mac OS X è un ottimo strumento per profilare un'applicazione su un sistema in esecuzione. Esistono strumenti simili per Linux?

OProfile sembra che potrebbe essere, qualcuno l'ha usato?

È stato utile?

Soluzione

OProfile è uno strumento che esegue la profilazione basata su campionamento di sia l'applicazione che il sistema chiama. Ciò consente di visualizzare informazioni dettagliate su dove trascorre il tempo. Non ha una GUI, ma ci sono diversi front-end che ti permetteranno di elaborare le informazioni dalle esecuzioni.

L'ho usato ampiamente, sia per applicazioni desktop che per sistemi embedded. Ci vuole un piccolo sforzo per interpretare i risultati, ma l'output del callgraph è davvero utile qui.

Altri suggerimenti

Estendendo un'altra risposta, utilizzo l'opzione 'callgrind' di valgrind ( http://valgrind.org ). Quindi installa kcachegrind da KDE per una bella interfaccia GUI.

Come tutorial di un manichino, fai:

1) Compila la tua applicazione con le informazioni di debug. È una buona idea provare a profilare con l'ottimizzazione sia attivata che disattivata, con l'ottimizzazione disattivata otterrai più informazioni, ma potrebbe essere meno preciso (in particolare le piccole funzioni sembreranno impiegare più tempo di quanto meritano.

2) Esegui con:

valgrind --tool=callgrind <name of your app> <your app's options>

Questo dovrebbe produrre un file chiamato 'callgrind.something', che puoi caricare in kcachegrind.

Puoi anche guardare:

valgrind --tool=cachegrind <name of your app> <your app's options>

Che ti darà informazioni su come l'app interagisce con la cache della tua CPU.

Nota che mentre valgrind e squalo sembrano app simili, funzionano in modo molto diverso. Quando esegui un'app in valgrind, verrà eseguita molte volte più lentamente del normale (spesso oltre 40 volte più lentamente), ma i risultati ottenuti sono molto più precisi di quelli dello squalo. Tendo a usare entrambi, quindi posso ottenere quante più informazioni possibili!

Probabilmente puoi provare Valgrind ( http://valgrind.org/ ). Hanno strumenti di profilazione sia in fase di esecuzione che in fase di compilazione.

Un po 'in ritardo per rispondere a questo, ma la risposta più vicina è Zoom . Alcuni membri del team Shark ci hanno lavorato.

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