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.

È stato utile?

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.

http://code.google.com/p/vsptree/

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top