234 votes

Quel est le meilleur profil C ++ gratuit pour Windows?

Je cherche un profileur afin de trouver le goulot d'étranglement de mon code c ++. J'aimerais trouver un outil de profilage gratuit, non intrusif et efficace. Je suis un développeur de jeux et j'utilise PIX pour Xbox360, et je l'ai trouvé très bien, mais ce n'est pas gratuit. Je connais Intel v-Tune, mais ce n'est pas gratuit non plus.

140voto

yrp Points 2931

AMD Code Analyst est gratuit, mais pas aussi avancé que VTune. Il y a aussi Sleepy , qui est très simple, mais fait le travail dans de nombreux cas.

66voto

lsalamon Points 5192

Very Sleepy est un profileur de CPU C / C ++ pour les systèmes Windows. (gratuit)

Vous pouvez également utiliser GoogleTest , Testing Framework.

36voto

pauldoo Points 5020

Proffy est assez cool: http://pauldoo.com/proffy/

Disclaimer: J'ai écrit ceci.

19voto

Arty Points 329

Il y a un instrumentant (fonction précise) générateur de profil pour les MS VC 7.1 et plus appelé MicroProfiler. Vous pouvez le trouver ici (x64) ou ici (x86). Il ne nécessite aucune des modifications ou des ajouts à votre code et est capable d'afficher en fonction des statistiques avec les appelants et les appelés en temps réel sans avoir besoin de la fermeture de l'application/l'arrêt du processus de profilage.

Il s'intègre avec VisualStudio, de sorte que vous pouvez facilement activer/désactiver le profilage d'un projet (exe pour le moment). Il est également possible de l'installer sur la machine propre, il n'a besoin que les informations de symbole être situé avec l'exécutable est profilée.

Cet outil est utile lors de la statistique rapprochement de l'échantillonnage de profileurs comme Très Somnolent n'est pas suffisant.

Une comparaison approximative montre, qu'il bat AQTime (lorsqu'elle est invoquée dans l'instrumentation, la fonction, le niveau de l'exécuter). Le programme suivant (optimisation), d'inlining désactivé) s'exécute trois fois plus vite avec micro-profiler de l'affichage des résultats en temps réel, qu'avec AQTime simplement de rassembler des statistiques:

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());
}

10voto

epotter Points 3235

Microsoft a le Windows Performance Toolkit.

Il ne nécessite pas Vista, 2008, ou Win7

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X