Sto cercando un profiler os-independent a basso impatto per codice C++.Alla ricerca di un profiler C++ a basso impatto
Quando dico basso impatto, mi riferisco a qualcosa di meno invadente di valgrind. Ho intenzione di usarlo in un ambiente embed basato su MIPS (da cui l'os-independance) e ho provato una versione port di valgrind e ha completamente cambiato le caratteristiche delle prestazioni (troppo principio di Heisenberg al lavoro) quindi non posso percorrere quella strada. Sappiamo che la velocità del bus di memoria è un collo di bottiglia che probabilmente spiega perché valgrind è stato così invadente.
Ho creato un tipo di profiler domestico basato sui checkpoint che mi consente di misurare alcune parti del codice. Fondamentalmente devo modificare il codice (e ricompilare) per impostare i checkpoint in punti strategici nel codice. Quindi, quando viene eseguito, memorizza il numero di volte in cui viene colpito ogni checkpoint e il tempo trascorso dall'ultimo checkpoint. Quindi, dopo averlo eseguito, posso scaricare i checkpoint e per ognuno calcola: num-hits, max-time, min-time, avg-time, ecc.
Questo profiler (l'ho chiamato LowImpactProfiler) funziona bene, ma mi chiedo se c'è qualcosa di meglio là fuori.
Ive ha considerato oProfile, che è un profilatore di campionamento, ma poiché Im non esegue Linux, penso che sarà davvero difficile da implementare.
Se l'obiettivo è scoprire cosa nel codice sta causando lentezza e potrebbe essere migliorato per ottenere prestazioni migliori * [potresti provare a farlo] (http://stackoverflow.com/questions/375913/what-can -i-uso-per-profilo-c-code-in-linux/378024 # 378024). * –
@Brady: * Heisenburger *? Non sapevo di questo! –
@Matthieu: non ne hai mai sentito parlare? È un hamburger quantico. –