Question

Je recherche un profileur afin de trouver le goulot d'étranglement dans mon code C ++. J'aimerais trouver un outil de profilage gratuit, non intrusif et efficace. Je suis un développeur de jeux. J'utilise PIX pour Xbox & 360 et le trouve très bien, mais ce n’est pas gratuit. Je connais les VTune d'Intel, mais ce n'est pas gratuit non plus.

Était-ce utile?

La solution

CodeXL a maintenant remplacé la fin de ligne Analyste de code AMD et les deux sont gratuits, mais pas aussi avancés que VTune. Il existe également Sleepy , ce qui est très simple, mais fait souvent l'affaire.

Autres conseils

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

Proffy est plutôt cool: http://pauldoo.com/proffy/

Avertissement: j'ai écrit ceci.

Il existe un profileur d’instrumentation (fonction précise) pour MS VC 7.1 et versions ultérieures, appelé MicroProfiler. Vous pouvez l'obtenir ici (x64) ou ici (x86) . Il ne nécessite aucune modification ni aucun ajout à votre code et est capable d'afficher des statistiques de fonction avec les appelants et les correspondants en temps réel sans qu'il soit nécessaire de fermer l'application / d'arrêter la processus de profilage.

Il s’intègre à VisualStudio, ce qui vous permet d’activer / désactiver facilement le profilage d’un projet. Il est également possible de l'installer sur la machine vierge, il suffit que les informations sur le symbole soient localisées avec l'exécutable en cours de profilage.

Cet outil est utile lorsque l’approximation statistique établie par des profileurs d’échantillonnage tels que Very Sleepy ne suffit pas.

Une comparaison approximative montre qu’elle bat AQTime (lorsqu’elle est appelée dans une exécution au niveau de la fonction). Le programme suivant (optimisation complète, inline désactivée) s'exécute trois fois plus rapidement avec un micro-profileur affichant les résultats en temps réel qu'avec AQTime simplement en collectant 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());
}

Microsoft dispose du Kit de performances Windows .

Cela nécessite Windows & Vista, Windows Server 2008 ou Windows & nbsp; 7.

Un nouvel ajout est Shiny .

Je recommande vivement la la boîte à outils de performance Windows (WPT) ou XPERF

L'outil de ligne de commande xperf en ligne de commande enregistre les journaux ETW (Event Tracing for Windows) qui peuvent être analysés à l'aide de l'outil xperfview de l'interface graphique.

Utilisation de la ligne de commande stacktrace arguement s'est avéré être un outil précieux pour mon entreprise, car elle permet de profiler et de résoudre les problèmes de goulots d'étranglement. L’une des choses les plus convaincantes est que le WPT peut être installé dans n’importe quel environnement, même sur le vénérable Windows XP .

Sous Windows 8, l'analyseur de performances Windows élève encore xperf à un niveau supérieur.

Les chiffres exacts et les statistiques fournis dans les journaux ETW sont sans précédent, sauf pour Visual Studio Profiler (2010/2012), qui est également excellent, mais pas gratuit, autant que je sache.

Si vous n'avez jamais utilisé xperf ... vous ne savez pas ce qu'il vous manque

J’utilise AQTime, c’est l’un des meilleurs outils de profilage que j’ai jamais utilisé. Ce n'est pas gratuit, mais vous pouvez obtenir un essai de 30 jours. Si vous prévoyez d'optimiser et de profiler un seul projet et que 30 jours suffisent, je vous recommande d'utiliser cette application. ( http://www.automatedqa.com/downloads/aqtime/index.asp)

Veuillez essayer mon profileur, appelé cRunWatch. Il ne s'agit que de deux fichiers. Il est donc facile de l'intégrer à vos projets. Il suffit d'ajouter exactement une ligne pour instrumenter un morceau de code.

http://ravenspoint.wordpress.com/2010/06/16/timing /

Nécessite la bibliothèque Boost.

J'ai utilisé Luke Stackwalker et le travail a été fait pour mon projet Visual Studio.

Les autres projets intéressants sont:

J'ai utilisé " TrueTime - une partie de la suite DevPartner de Compuware pendant des années. Il existe une [version gratuite] (vous pouvez essayer Compuware DevPartner Performance Analysis Community Edition.) Disponible.

J'utilise VSPerfMon, qui est le profileur autonome de Visual Studio. J'ai écrit un outil graphique pour m'aider à l'exécuter et à regarder les résultats.

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

Vous pouvez utiliser EmbeddedProfiler, gratuit pour Linux et Windwos.

Le profileur est intrusif (par fonctionnalité) mais il ne nécessite aucune modification du code. Ajoutez simplement un drapeau spécifique du compilateur (-finstrument-functios pour gcc / MinGW ou / GH pour MSVC) et liez la bibliothèque du profileur. Il peut vous fournir un arbre d’appel complet ou juste une liste de fonctions. Il a sa propre interface graphique d'analyse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top