PDA

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 ;)

cionci
02-07-2004, 00:37
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

cionci
02-07-2004, 13:20
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 )