J'ai une application écrite en C++ en utilisant Visual Studio 2005. L'application présente certains problèmes de performances. Je voudrais explorer où. Je dois explorer dans quelles classes/méthodes/lignes l'application passe la plupart du temps. Cela peut-il être fait avec le WPA? Si oui, pouvez-vous, s'il vous plaît, me donner un pointeur vers la documentation?Utilisation de l'outil Windows Performance Analysis en tant que profileur
Répondre
Non, WPT exploite les événements Windows, cela vous aiderait seulement à diagnostiquer un problème lorsque Windows est la cause de votre ralentissement. Vous n'obtiendrez certainement aucun diagnostic pour votre code. Ce dont vous avez besoin est un vrai profileur. Les bons coûtent de l'argent. Vérifiez this thread pour plus de conseils.
Essayez le YourKit .net profiler. J'ai essayé ceci et quelques autres récemment, mais c'était le seul que j'ai réussi à travailler avec mon projet C++/CLI (avec un mélange de code managé et non managé).
[Éditer] Oups; J'ai lu WPA comme WPF et supposé que vous vouliez profiler un certain code .net.
Le moyen le plus simple pour savoir ce qui est inutile est le stackshots, que vous pouvez facilement obtenir avec le bouton "pause" dans Visual Studio.
Vous n'avez pas besoin de mesurer; tout ce que vous avez à faire est de le prendre en flagrant délit. Si vous trouvez que vous faites quelque chose sur deux ou plusieurs photos, et que c'est quelque chose que vous pourriez éviter de faire, vous gagnerez beaucoup de temps. Et, vous pouvez répéter le processus, car les problèmes qui sont petits au premier abord vont "augmenter" lorsque vous supprimez d'autres problèmes.
Bon conseil mais inadapté à ma situation. L'application fonctionne bien sur Windows (99% du temps d'attente pour l'entrée de l'utilisateur), les problèmes de performance sont visibles uniquement sur un système embarqué avec un processeur beaucoup plus lent et pour lequel je n'ai aucun débogueur/profileur. Bon profileur pourrait aider car il peut distinguer entre 0,5% et 0,05% du temps. – danatel
Ce que je fais dans ce cas est d'enrouler une boucle (10x ou 100x) autour de chaque traitement piloté par l'interface utilisateur, de manière à "amplifier" ce qui se passe. Cela a le même effet que de ralentir le processeur. Réglez le code sur le temps minimum, puis retirez la boucle. –
- 1. profileur java haute performance
- 2. Utilisation de Windows PowerShell en tant que planificateur par lots
- 3. Utilisation de TTreeview en tant que menu
- 4. Utilisation de DAO en tant que commande
- 5. Utilisation des délégués en tant que paramètres
- 6. Utilisation d'une Datagrid en tant que Datagrid.RowDetailsTemplate
- 7. Utilisation de Cygwin en tant que shell pour MinGW
- 8. Exécuter l'application Windows en tant que service?
- 9. Programme Java en tant que service Windows
- 10. Profileur C++ gratuit pour Windows
- 11. Service WCF en tant que service Windows (0) Windows 7
- 12. Utilisation de VIM en tant que visualiseur de fichier journal
- 13. Utilisation de JMS en tant que gestionnaire de verrou distribué?
- 14. Utilisation de l'écho de PHP en tant que service Web
- 15. Utilisation de Lambda en tant que contraintes dans NUnit 2.5?
- 16. Utilisation de JLabels en tant que pseudo-boutons
- 17. Utilisation d'un POJO en tant que source de données iReport
- 18. Utilisation de JQuery en tant que ressource Web intégrée ASP.NET
- 19. Utilisation de Fulltext Index Pertinence en tant que 0
- 20. Utilisation d'une vue en tant que gabarit de données
- 21. Utilisation de Workflow 4 en tant que contrôleur dans MVC
- 22. Utilisation d'un objet en tant que clé de dictionnaire générique
- 23. Utilisation de Chromium en tant que MFC CWnd
- 24. Utilisation de Django en tant que backend pour Cappuccino
- 25. Utilisation de Facebook en tant que connexion unique
- 26. Utilisation de XSLT Absolute ResolvedURL en tant que lien
- 27. Utilisation de la date en tant que tableau
- 28. Utilisation de la Galerie Android en tant que diaporama automatisé
- 29. Utilisation de Clojure deftype en tant que fonction paramétrée
- 30. Utilisation du type passé en tant que modèle en C++
Merci. J'étais désespéré d'essayer de forcer WPT à lire mes tables de symboles. – danatel