it-swarm.it

Qual è il miglior profiler C ++ gratuito per Windows?

Sto cercando un profiler per trovare il collo di bottiglia nel mio codice C++. Vorrei trovare uno strumento di profilazione gratuito, non intrusivo e valido. Sono uno sviluppatore di giochi e utilizzo PIX per Xbox 360 e l'ho trovato molto buono, ma non è gratuito. Conosco Intel VTune , ma non è neanche gratuito.

218
ugasoft

CodeXL ora ha sostituito End Of Line'd AMD Code Analyst ed entrambi sono gratuiti, ma non avanzati come VTune. C'è anche Sleepy , che è molto semplice, ma fa il lavoro in molti casi.

132
yrp

Very Sleepy è un profiler CPU C/C++ per sistemi Windows (gratuito).
CppCheck è un profiler CPU statico C/C++ per sistemi Windows (gratuito).

59
lsalamon

Proffy è piuttosto interessante: http://pauldoo.com/proffy/

Disclaimer: ho scritto questo.

34
pauldoo

Esiste un profiler di strumentazione (accurato per le funzioni) per MS VC 7.1 e versioni successive chiamato MicroProfiler. Puoi scaricarlo qui (x64) o qui ( x86) . non richiede alcuna modifica o aggiunta al tuo codice ed è in grado di visualizzare le statistiche delle funzioni con chiamanti e chiamate in in tempo reale senza la necessità di chiudere l'applicazione/interrompere il processo di profilazione.

Si integra con VisualStudio, quindi puoi abilitare/disabilitare facilmente la profilazione per un progetto. È anche possibile installarlo su una macchina pulita, necessita solo che le informazioni sui simboli siano posizionate insieme all'eseguibile da profilare.

Questo strumento è utile quando l'approssimazione statistica da parte di profili di campionamento come Very Sleepy non è sufficiente.

Il confronto approssimativo mostra che batte AQTime (quando viene invocato nella strumentazione, corsa a livello di funzione). Il seguente programma (ottimizzazione completa, inclinazione disabilitata) viene eseguito tre volte più velocemente con il micro-profiler che visualizza i risultati in tempo reale rispetto a AQTime semplicemente raccogliendo 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());
}
17
Arty

Microsoft ha Windows Performance Toolkit .

Richiede Windows Vista, Windows Server 2008 o Windows 7.

10
epotter

Una nuova aggiunta è lucido .

7
Buggieboy

Consiglio vivamente Windows Performance Toolkit (WPT) o [~ # ~] xperf [~ # ~]

Lo strumento da riga di comando xperf della riga di comando registra i log Traccia eventi per Windows (ETW) che possono essere analizzati utilizzando lo strumento xperfview della GUI.

L'uso di argomentazione da riga di comando stacktrace ha dimostrato di essere uno strumento prezioso per la mia azienda in quanto profila e risolve i colli di bottiglia. Una delle cose più convincenti è che il WPT può essere installato in qualsiasi ambiente anche sul venerabile Windows XP .

Su Windows 8 Windows Performance Analyzer porta xperf a un livello ancora più alto.

I numeri e le statistiche concreti forniti nei registri ETW sono ineguagliabili nei dettagli, ad eccezione del profiler di Visual Studio (2010/2012), che è anche fantastico ma non gratuito AFAIK.

Se non hai mai usato xperf ... non sai cosa ti stai perdendo

5
MW_dev

Uso 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 sono sufficienti per te, ti consiglio di utilizzare questa applicazione. ( http://www.automatedqa.com/downloads/aqtime/index.asp )

3
dudico

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.

2
ravenspoint

Ho usato Luke Stackwalker e ha fatto il lavoro per il mio progetto Visual Studio.

Altri progetti interessanti sono:

1
INS

Ho usato "TrueTime - parte della suite DevPartner di Compuware per anni. È disponibile una [versione gratuita] (è possibile provare Compuware DevPartner Performance Analysis Community Edition.) Disponibile.

0
Harold Ekstrom

Puoi usare EmbeddedProfiler, è gratuito sia per Linux che per Windwos.

Il profiler è invadente (per funzionalità) ma non richiede alcuna modifica del codice. Basta aggiungere un flag di compilatore specifico (-finstrument-functios per gcc/MinGW o/GH per MSVC) e collegare la libreria del profiler. Può fornire un albero delle chiamate completo o solo un elenco di funzioni. Ha la sua interfaccia grafica per l'analizzatore.

0
Mi-La