View Full Version : Misurare prestazioni di programma in C++
dino_sauro00
01-07-2004, 17:38
Ciao ragazzi!
Ancora una volta ho bisogno del vostro aiuto. Sapete se esiste qualche utility per Windows, per misurare le prestazioni di un programma in C++? Vorrei una cosa del genere per vedere se con certi cambiamenti in un mio programma riesco a ottenere qualche miglioramento.
Grazie a tutti quanti!
mmx[ngg]
02-07-2004, 00:30
CodeAnalyst di Amd o VTune di Intel o cmq un qualsiasi altro profiler (quello di Amd è particolarmente semplice e supporta un simulatore di pipeline x i processori Athlon)
Però un profiler è l'ultima spiaggia :D prima di utilizzarlo è meglio cercare altre strade...tipo :
- Cambiare il compilatore :eh: (quello dell'Intel o il Watcom C++ sono forse i migliori in fase di ottimizzazione)
- Dichiarare tutte le variabili ke sono maggiormente utilizzate nei cicli come locali e non globali (questo è un errore frequente e a volte la differenza è immane)
- Estrapolare il codice ininfluente dai cicli e portarlo all'esterno (è una cagata...ma non si sa mai)
- Passare alle istruzioni inline (e di conseguenza usare - lo stack)
- Usare l'assembly :yeah:
Poi.......bhe se ci dici cosa fa il programma se ne può parlare ;)
Anche gcc ottimizza molto con l'ozione -O3...
dino_sauro00
02-07-2004, 11:31
Grazie davvero per i vostri preziosi consigli.
A dire il vero quello che mi interessa di piu' e' vedere quanto migliora la mia applicazione seguendo particolari accorgimenti (che sarebbe poi la tua lista mmx[ngg] tranne che per l'ultimo punto :D)
Ho gia' scaricato CodeAnalyst e adesso daro' anche un'occhiattina a watcom!
Grazie di nuovo!
Vi saluto fino al prossimo problema :D
Byezzz
Ma per vedere "quanto" migliora non ti basta misuare il tempo delle varie operazioni ?
dino_sauro00
02-07-2004, 16:11
Originariamente inviato da cionci
Ma per vedere "quanto" migliora non ti basta misuare il tempo delle varie operazioni ?
Scusa cionci ma qui t'ho perso! Cosa intendi per misurare il tempo delle varie operazioni?
mmx[ngg]
02-07-2004, 16:26
Originariamente inviato da dino_sauro00
Scusa cionci ma qui t'ho perso! Cosa intendi per misurare il tempo delle varie operazioni?
Un timer :D
Start prima di fare qualcosa
Stop alla fine e quindi durata = Stop - Start
Questo ti dice quanto dura qualcosa (una routine in genere)...ma non ti dice cosa la fà durare tanto.
Cmq son curioso.....cosa stai scrivendo ? :)
dino_sauro00
02-07-2004, 16:46
Originariamente inviato da mmx[ngg]
Un timer :D
Start prima di fare qualcosa
Stop alla fine e quindi durata = Stop - Start
Questo ti dice quanto dura qualcosa (una routine in genere)...ma non ti dice cosa la fà durare tanto.
Cmq son curioso.....cosa stai scrivendo ? :)
LOLLLLLL
Mi sa che la devo smettere con le nottate perche' gia' il cervello non e' in buono stato..... :D
Credo comunque che un semplice timer non basterebbe.
Non sto scrivendo qualcosa di particolare. Piu' che altro sto rivedendo dei vecchi programmi che ho fatto e li sto riscrivendo per migliorarne le prestazioni (o si spera :D )
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.