Qual è il miglior profiler C++ gratuito per Windows?[Chiuso]
Domanda
Sto cercando un profiler per trovare il collo di bottiglia nel mio codice C++.Mi piacerebbe trovare uno strumento di profilazione gratuito, non invasivo e valido.Sono uno sviluppatore di giochi e utilizzo PIX per Xbox 360 e l'ho trovato molto buono, ma non è gratuito.Conosco l'Intel VTune, ma non è nemmeno gratuito.
Soluzione
CodiceXL ha ora sostituito End Of Line'd Analista di codice AMD ed entrambi sono gratuiti, ma non così avanzati come VTune.C'è anche Assonnato, che è molto semplice, ma in molti casi fa il suo lavoro.
Altri suggerimenti
Molto assonnato è un profiler CPU C/C++ per sistemi Windows (gratuito).
CppCheck è un profiler CPU statico C/C++ per sistemi Windows (gratuito).
Proffy è piuttosto simpatico: http://pauldoo.com/proffy/
Disclaimer:Ho scritto questo.
È disponibile un profiler della strumentazione (accurato nelle funzioni) per MS VC 7.1 e versioni successive chiamato MicroProfiler. Puoi trovarlo qui (x64) O qui (x86).Esso non necessita di modifiche o aggiunte al tuo codice ed è in grado di visualizzare le statistiche delle funzioni con chiamanti e chiamati in tempo reale senza la necessità di chiudere la domanda/interrompere il processo di profilazione.
Si integra con VisualStudio, quindi puoi facilmente abilitare/disabilitare la profilazione per un progetto.È anche possibile installarlo su una macchina pulita, è sufficiente che le informazioni sui simboli siano localizzate insieme all'eseguibile da profilare.
Questo strumento è utile quando l'approssimazione statistica ottenuta da profiler di campionamento come Very Sleepy non è sufficiente.
Un confronto approssimativo mostra che batte AQTime (quando viene invocato nella strumentazione, esecuzione a livello di funzione).Il seguente programma (ottimizzazione completa, incorporamento disabilitato) viene eseguito tre volte più velocemente con il micro-profiler che visualizza i risultati in tempo reale, rispetto a AQTime che raccoglie semplicemente le statistiche:
void f()
{
srand(time(0));
vector<double> v(300000);
generate_n(v.begin(), v.size(), &random);
sort(v.begin(), v.end());
sort(v.rbegin(), v.rend());
sort(v.begin(), v.end());
sort(v.rbegin(), v.rend());
}
Microsoft ha il Kit di strumenti per le prestazioni di Windows.
Richiede Windows Vista, WindowsServer2008, o Windows 7.
Una nuova aggiunta è Brillante.
Consiglio vivamente Kit di strumenti per le prestazioni di Windows (WPT) O XPERF
Lo strumento da riga di comando xperf della riga di comando registra i registri Event Tracing for Windows (ETW) che possono essere analizzati utilizzando lo strumento GUI xperfview.
Utilizzando argomento della riga di comando di stacktrace si è rivelato uno strumento prezioso per la mia azienda poiché delinea e risolve i colli di bottiglia.Una delle cose più interessanti è che il WPT può essere installato in qualsiasi ambiente, anche sul venerabile Windows XP.
SU Windows 8 l'Analizzatore delle prestazioni di Windows porta xperf a un livello ancora più alto.
I numeri concreti e le statistiche forniti nei registri ETW non hanno eguali nel dettaglio, ad eccezione di Visual Studio Profiler (2010/2012), anch'esso ottimo ma non gratuito, per quanto ne so.
Se non hai mai usato xperf...non sai cosa ti perdi
Utilizzo AQTime, è uno dei migliori strumenti di profilazione che abbia mai usato.Non è gratuito ma puoi ottenere una prova di 30 giorni, quindi se prevedi di ottimizzare e profilare un solo progetto e 30 giorni ti bastano, ti consiglio di utilizzare questa applicazione.(http://www.automatedqa.com/downloads/aqtime/index.asp)
Per favore prova il mio profiler, chiamato cRunWatch.Sono solo due file, quindi è facile da integrare con i tuoi progetti e richiede l'aggiunta di esattamente una riga per strumentare un pezzo di codice.
http://ravenspoint.wordpress.com/2010/06/16/timing/
Richiede la libreria Boost.
ero solito Luca Stackwalker e ha fatto il lavoro per il mio progetto Visual Studio.
Altri progetti interessanti sono:
Utilizzo da anni "TrueTime, parte della suite DevPartner di Compuware.È disponibile una [versione gratuita] (potresti provare Compuware DevPartner Performance Analysis Community Edition.).
Utilizzo VSPerfMon che è il profiler autonomo di Visual Studio.Ho scritto uno strumento GUI per aiutarmi a eseguirlo e guardare i risultati.
Puoi utilizzare EmbeddedProfiler, è gratuito sia per Linux che per Windwos.
Il profiler è invadente (per funzionalità) ma non richiede alcuna modifica del codice.Basta aggiungere un flag specifico del compilatore (-finstrument-functios per gcc/MinGW o /GH per MSVC) e collegare la libreria del profiler.Può fornire un albero completo delle chiamate o solo un elenco di funzioni.Ha la propria GUI dell'analizzatore.