Ce profileurs que vous avez utilisée lorsque vous travaillez avec des programmes .net, et qui vous recommande en particulier ?
Réponses
Trop de publicités?J'ai utilisé JetBrains dotTrace et Redgate FOURMIS largement. Ils sont assez similaires dans les caractéristiques et les prix. Ils offrent tous deux utile de profilage des performances et assez basique le profilage de la mémoire.
dotTrace s'intègre avec Resharper, ce qui est vraiment pratique, comme vous pouvez le profil de la performance d'une unité de test avec un seul clic à partir de l'IDE. Cependant, dotTrace semble souvent donner des résultats incorrects (par exemple, dire qu'une méthode a fallu plusieurs années pour s'exécuter)
Je préfère la façon dont les FOURMIS présente les résultats de profilage. Il vous montre le code source et à gauche de chaque ligne vous indique combien de temps il a fallu pour exécuter. dotTrace a juste une vue de l'arborescence.
EQATEC profiler est assez basique et nécessite une compilation spéciale instrumenté versions de vos assemblées, qui peut ensuite être exécuté dans le EQATEC profiler. Il est, cependant, gratuit.
Dans l'ensemble je préfère les FOURMIS pour le profilage des performances, mais si vous les utilisez Resharper puis l'intégration de dotTrace est une killer feature et signifie qu'il bat des FOURMIS dans la convivialité.
La gratuit de Microsoft CLR Profiler (.Net framework 2.0 / .Net Framework 4.0) est tout ce dont vous avez besoin pour .NET le profilage de la mémoire.
2011 mise à Jour:
Le Scitech profileur de mémoire dispose d'une INTERFACE utilisateur de base, mais beaucoup d'informations utiles, incluant des informations sur la mémoire non managée qui dotTrace et les FOURMIS manque - vous trouverez peut-être utile si vous faites de la COM interop, mais j'ai encore trouvé aucune profiler qui rend COM des problèmes de mémoire facile à diagnostiquer - vous avez généralement à briser windbg.exe
.
Les FOURMIS profiler est venu à pas de géant ces dernières années, et sa mémoire profiler a vraiment fonctionnalités utiles qui maintenant poussé à l'avance dotTrace comme un paquet dans mon estimation. Je suis assez chanceux pour avoir des licences pour les deux, mais si vous allez en acheter un .Net profiler pour à la fois la performance et la mémoire, rendre les FOURMIS.
D'autres l'ont couvert de profilage des performances, mais en ce qui concerne le profilage de la mémoire Je suis actuellement en train d'évaluer à la fois la Scitech .NET Memory Profiler 3.1 et les FOURMIS Memory Profiler 5.1 (versions actuelles de septembre 2009). J'ai essayé le JetBrains un an ou deux et il n'était pas aussi bonne que les FOURMIS (pour le profilage de la mémoire), donc je n'ai pas pris la peine cette fois. De la lecture des sites web, on dirait qu'il n'a pas le même profilage de la mémoire fonctions que les deux autres.
Les deux FOURMIS et les Scitech memory profiler ont des caractéristiques que l'autre ne l'est pas, ce qui est le mieux dépendra de vos préférences. Généralement parlant, la Scitech on dispose d'informations plus détaillées, tandis que les FOURMIS est vraiment incroyable à l'identification de la fuite de l'objet. Dans l'ensemble, je préfère les FOURMIS, car c'est tellement rapide à identifier d'éventuelles fuites.
Voici les principaux avantages et inconvénients de chaque partir de mon expérience:
Caractéristiques communes des FOURMIS et Scitech .NET Memory Profiler
- L'analyse en temps réel de la fonctionnalité
- D'excellentes vidéos sur leurs sites web
- Facile à utiliser
- Raisonnablement performant (évidemment plus faible que sans le profiler est attaché, mais pas tellement vous devenez frustré)
- Afficher les instances de fuite d'objets
- Fondamentalement, ils ont tous deux faire le travail assez bien
Les FOURMIS
- Un-cliquez sur filtres pour trouver les fuites , y compris: les objets maintenu en vie que par les gestionnaires d'événements, les objets qui sont éliminés, mais toujours vivants et des objets qui ne sont maintenu en vie par une référence à partir d'un objet supprimé. C'est probablement la killer feature de FOURMIS - trouver les fuites est incroyablement rapide à cause de cela. Dans mon expérience, la plupart des fuites sont causées par des gestionnaires d'événement de ne pas être décrochés et les FOURMIS juste vous emmène directement à ces objets. Génial.
- L'objet de la rétention graphique. Alors que la même info est disponible dans Scitech, il est beaucoup plus facile à interpréter chez les FOURMIS.
- Affiche la taille avec les enfants en plus de la taille de l'objet lui-même (mais seulement lorsqu'une instance est sélectionné malheureusement, pas dans l'ensemble de la classe liste).
- Une meilleure intégration à Visual Studio (clic droit sur le graphique pour sauter au fichier)
Scitech .NET Memory Profiler
- Montre la trace de la pile lorsque l'objet a été alloué. C'est vraiment utile pour les objets alloués dans beaucoup d'endroits différents. Avec les FOURMIS, il est difficile de déterminer exactement où la fuite de l'objet a été créé.
- Montre comte de jetables objets qui n'ont pas été éliminés. Alors que pas une indication d'une fuite, il n'est d'identifier les possibilités de résoudre ce problème et améliorer les performances de vos applications grâce à une accélération de la collecte des ordures.
- Plus détaillée des options de filtrage (plusieurs colonnes peuvent être filtrées de manière indépendante).
- Affiche des informations sur le nombre total d'objets créés (y compris ceux des ordures collectées). Les FOURMIS ne montre 'live' objet de statistiques. Cela facilite l'analyse et optimisation globale des performances de l'application (par exemple. identifier où beaucoup d'objets superflue qui ne sont pas nécessairement des fuites).
En résumé, je pense que les FOURMIS vous aide à trouver ce qui est des fuites plus rapidement, tout en Scitech fournit un peu plus de détails sur votre demande les performances de la mémoire et objets individuels une fois que vous savez quoi regarder (eg. trace de la pile sur la création). Si la trace de la pile et le suivi de undisposed jetables objets a été ajouté aux FOURMIS que je ne vois pas la nécessité d'utiliser autre chose.
J’ai récemment découvert EQATEC Profiler http://www.eqatec.com/tools/profiler. Il fonctionne avec la plupart des versions de .NET et sur un tas de plateformes. Il est facile à utiliser et des parties de celui-ci est libre, même à des fins commerciales.
Bien que pas encore aussi complet que d'autres .NET profileurs de mémoire énumérés ici, il y a une nouvelle entrée sur le marché appelé JustTrace. Elle est faite par Telerik et c'est l'objectif principal est de rendre le suivi/profilage plus facile et plus rapide pour tous les types d'applications (web/Silverlight/desktop).
Si vous avez jamais trouvé le profilage et l'optimisation de l'intimidation ou la lenteur avec d'autres outils, puis JustTrace peut-être en valeur un regard.
N’oubliez pas nProf - une bonne parfaitement, les freeware profileur.