3.5.3. Valgrind
Valgrind rende disponibili un certo numero di strumenti per il profiling e di rilevamento per il miglioramento delle prestazioni e per una esecuzione corretta delle applicazione. Questi strumenti sono in grado di rilevare errori relativi ai thread e alla memoria, insieme agli array overrun e dello stack, permettendo così una identificazione e correzione più semplice degli errori nel codice dell'applicazione. Essi sono in grado altresì di analizzare la cache, heap e la previsione del branch, per identificare i fattori in grado di aumentare la velocità dell'applicazione e ridurre l'uso della memoria.
Valgrind analizza l'applicazione eseguendola su una CPU sintetica, monitorandola e misurando le prestazioni del codice esistente durante la sua esecuzione. Successivamente stampa i "commenti" identificando ogni processo presente nell'esecuzione dell'applicazione su un descrittore del file specificato dall'utente, file, o socket di rete. Il livello di strumentazione varia in base allo strumento di Valgrind usato, e alle impostazioni, ma è importante notare che l'esecuzione di un codice "instrumentato" può richiedere un periodo dai 4-50 volte più lungo rispetto al periodo di esecuzione normale.
Valgrind può essere usato sull'applicazione senza alcuna ricompilazione aggiuntiva. Tuttavia poichè Valgrind utilizza informazioni di debugging per definire le problematiche nel codice, se l'applicazione e le librerie di supporto non sono state compilate con informazioni di debugging abilitate, è fortemente consigliato eseguire un nuovo processo di compilazione per includere queste informazioni.
Con Red Hat Enterprise Linux 6.4, Valgrind viene integrato con gdb (GNU Project Debugger) per migliorare l'efficienza del debugging.
Per maggiori informazioni su Valgrind consultare la Developer Guide disponibile su http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/, o usando il comando
man valgrind
se avete installato il pacchetto valgrind. Ulteriore documentazione è disponibile anche in:
/usr/share/doc/valgrind-<version>/valgrind_manual.pdf
/usr/share/doc/valgrind-<version>/html/index.html
Per maggiori informazioni su come usare Valgrind per analizzare la memoria del sistema consultare Sezione 5.3, «Come usare Valgrind per una analisi sull'uso della memoria».