PDA

View Full Version : [C/C++]Monitorare la complessita del codice


anx721
24-11-2004, 23:08
Salve,

vorrei sapere se conoscete tecniche/strumenti che si possono adottare per avere delle informazioni sulla complessita del codice eseguito a runtime; ad esempio sapere quante operazioni aritmetiche sono state eseguite, quanti accessi alla memoria; in particolare dovrebbe essere possibile durante l'esecuzione del programma:

- azzerare dei contatori che misurano la complessita;
- chiamare una funzione di cui voglio 'misurare' la complessità;
- leggere i contatori per avere una stima del numero di operazioni elementari eseguite durante l'esecuzione della funzione.

Sapete dell'esistenza di programmi per 'instrumentare il codice', cioè che prendono in pasto il codice sorgente, lo modificano inserendo degli appositi contatori (ad esempio incrementano una variabile ogni volta che è eseguita un'addizione...), in modo tale che sia possibile effettuare queste misure?

Grazie e ciao.

fabianoda
25-11-2004, 10:57
Nella suite di Rational versione enterprise esiste un programma chiamato Quantify che ti permette di fare queste cose.

Il problema è che costa un casino di soldi!

Soluzioni alternative sono vedere se trovi qualcosa su sourceforge.net oppure a livello universitario. Magari do un occhiata e ti facico sapere

anx721
25-11-2004, 11:41
Mi serve qualkosa di free e da usare soto linux; fammi sapere se trovi qualcosa, grazie.

ilsensine
25-11-2004, 12:04
http://valgrind.kde.org/

anx721
25-11-2004, 14:22
Valgrind mi pare che sia una macchina virtulae che lavora direttamente col codice eseguibile, eseguendolo appunto, e poi scrivendo i risultati.

Io vorrei qualkosa di diverso nel senso che io devo essere a conoscenza della complessita misurata all'interno del mio programma stesso, non solo alla sua terminazine. Non devo misurare le prestazioni di tutto ilprogramma, ma solo di alcune funzioni che chiamo; qundi all'interno del mio programma devo attivare le misure, chiamare la funzione da misurare, leggere i valori delle misure effetuate e farci quello che volgio (tipo stampare tali valori, o scriverli in un file). L'acquisizione delle misure deve cioè avvenire durante il programma stesso, ad esempio leggendo delle variabili globali.

Non consocete nulla che possa farmi fare ciò?

anx721
26-11-2004, 21:24
up