2013-03-18 4 views
5

Sto costruendo un programma multi-threaded ad alte prestazioni. Le durate di alcune funzioni e la sovrapposizione di esecuzione contano molto e desidero in qualche modo produrre una sorta di grafico temporale della timeline che mostri a che ora sono iniziate le funzioni e le loro durate. Desidero qualcosa di simile ai grafici del profiler NVIDIA. Utilizzando il pacchetto boost::chrono raccolgo già le timeline, ma non riesco a trovare alcun software o API che le elabori. Qualcuno ne conosce qualcuno?timeline grafica crea API software per la profilazione di un programma C + multithreading

saluti

Daniel

+0

quale piattaforma di runtime usi? – yohjp

+0

Se conosci già opengl (come sembra), perché non utilizzarlo per il rendering? Se il tuo programma è vincolato alla CPU, quella soluzione non dovrebbe comportare un sovraccarico del tuo programma. – didierc

+0

@yohjp ... mi dispiace dimenticarmi di dire che sto usando C++ su linux .. ma desidero mantenere la compatibilità del codice per compilare anche su Windows a tempo debito – Daniel

risposta

1

Dai un'occhiata alla kcachegrind, penso che fa quello che si vuole. Ecco alcuni screenshots.

Se non si desidera utilizzare callgrind e si preferisce generare i grafici manualmente, prendere in considerazione l'utilizzo di Graphviz. Tutto ciò che devi fare per produrre un grafico con graphviz è creare una descrizione del grafico in un semplice formato di testo.

+0

sembra molto carino. – didierc

+0

Avendo, ma dei record ho bisogno di asolution che funziona evn per il rilascio, vale a dire no -g option ma piuttosto -O3 .. kcachegrind funziona solo con -g non è vero? – Daniel

+0

Penso che tutti gli strumenti valgrind siano indifferenti a '-g'. Nota che puoi compilare con '-O3' e' -g' allo stesso tempo. – piokuc

-1

Se si dispone di "Microsoft Visual Studio 2012 Professional (o versione successiva)" ed è in esecuzione il programma su Windows, è possibile utilizzare Concurrency Visualizer. Questo strumento può profilare e visualizzare l'utilizzo di thread/cpu sulla timeline anche per applicazioni C++.

vedere anche MSDN Blogs.

Problemi correlati