c# - Quels sont les bons profileurs .NET?

Translate

Quels profileurs avez-vous utilisés lorsque vous travaillez avec des programmes .net, et lesquels recommanderiez-vous particulièrement?

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

j'ai utiliséJetBrains dotTraceetRedgate ANTSlargement. Ils sont assez similaires en termes de fonctionnalités et de prix. Ils offrent tous deux un profilage des performances utile et un profilage mémoire assez basique.

dotTrace s'intègre à Resharper, ce qui est vraiment pratique, car vous pouvez profiler les performances d'un test unitaire en un seul clic depuis l'EDI. Cependant, dotTrace semble souvent donner des résultats faux (par exemple en disant qu'une méthode a mis plusieurs années à s'exécuter)

Je préfère la façon dont ANTS présente les résultats du profilage. Il vous montre le code source et à gauche de chaque ligne vous indique combien de temps il a fallu pour s'exécuter. dotTrace a juste une vue arborescente.

Profileur EQATECest assez basique et vous oblige à compiler des versions instrumentées spéciales de vos assemblys qui peuvent ensuite être exécutées dans le profileur EQATEC. Il est cependant gratuit.

Dans l'ensemble, je préfère ANTS pour le profilage des performances, bien que si vous utilisez Resharper, l'intégration de dotTrace est une fonctionnalité qui tue et signifie qu'elle bat ANTS en termes de convivialité.

Le Profiler Microsoft CLR gratuit (.Net Framework 2.0/.Net Framework 4.0) est tout ce dont vous avez besoin pour le profilage de la mémoire .NET.

Mise à jour 2011:

leProfileur de mémoire Scitecha une interface utilisateur assez basique mais beaucoup d'informations utiles, y compris des informations sur la mémoire non gérée qui manquent à dotTrace et ANTS - vous pourriez trouver cela utile si vous effectuez une interopérabilité COM, mais je n'ai pas encore trouvé de profileur qui facilite les problèmes de mémoire COM diagnostiquer - vous devez généralement éclaterwindbg.exe.

Le profileur ANTS est arrivé à pas de géant au cours des dernières années, et son profileur de mémoire possède des fonctionnalités vraiment utiles qui l'ont maintenant poussé devant dotTrace en tant que package à mon avis. J'ai la chance d'avoir des licences pour les deux, mais si vous allez acheter un profileur .Net pour les performances et la mémoire, faites-le ANTS.

La source
Dwight Lee
Translate

D'autres ont couvert le profilage des performances, maisen ce qui concerne le profilage de la mémoireJ'évalue actuellement le Scitech .NET Memory Profiler 3.1 et ANTS Memory Profiler 5.1 (versions actuelles en septembre 2009). J'ai essayé le JetBrains un il y a un an ou deux et ce n'était pas aussi bon que ANTS (pour le profilage de la mémoire), donc je n'ai pas dérangé cette fois. À la lecture des sites Web, il semble que ce ne soit pas le mêmeprofilage de la mémoirecaractéristiques comme les deux autres.

ANTS et le profileur de mémoire Scitech ont des fonctionnalités que l'autre n'a pas, donc ce qui est le mieux dépendra de vos préférences. De manière générale, celui de Scitech fournit des informations plus détaillées tandis que celui de ANTS est vraiment incroyable pour identifier l'objet qui fuit. Dans l'ensemble, je préfère le modèle ANTS car il identifie très rapidement les fuites éventuelles.

Voici les principaux avantages et inconvénients de chacun d'après mon expérience:

Caractéristiques communes de ANTS et Scitech .NET Memory Profiler

  • Fonction d'analyse en temps réel
  • Excellentes vidéos explicatives sur leurs sites Web
  • Facile à utiliser
  • Raisonnablement performant (évidemment plus lent que sans le profileur attaché, mais pas tellement vous devenez frustré)
  • Afficher les instances d'objets qui fuient
  • En gros, ils font tous les deux assez bien le travail

FOURMIS

  • Filtres en un clic pour trouver les fuites courantesy compris: les objets conservés en vie uniquement par les gestionnaires d'événements, les objets qui sont supprimés mais toujours vivants et les objets qui ne sont maintenus en vie que par une référence d'un objet supprimé. C'est probablement la caractéristique la plus meurtrière de ANTS - trouver des fuites est incroyablement rapide à cause de cela. D'après mon expérience, la majorité des fuites sont causées par le fait que les gestionnaires d'événements ne sont pas décrochés et ANTS vous amène directement à ces objets. Impressionnant.
  • Graphique de rétention d'objets. Bien que les mêmes informations soient disponibles dans Scitech, elles sont beaucoup plus faciles à interpréter dans ANTS.
  • Affiche la taille avec les enfants en plus de la taille de l'objet lui-même (mais uniquement lorsqu'une instance est sélectionnée malheureusement, pas dans la liste globale de la classe).
  • Meilleure intégration à Visual Studio (cliquez avec le bouton droit sur le graphique pour accéder au fichier)

Profiler de mémoire Scitech .NET

  • Affiche la trace de la pile lorsque l'objet a été alloué. C'estvraimentutile pour les objets qui sont alloués dans de nombreux endroits différents. Avec ANTS, il est difficile de déterminer exactement où l'objet qui a fui a été créé.
  • Affiche le nombre d'objets jetables qui n'ont pas été supprimés. Bien que cela n'indique pas une fuite, il identifie les opportunités de résoudre ce problème et d'améliorer les performances de votre application grâce à une récupération de place plus rapide.
  • Options de filtrage plus détaillées (plusieurs colonnes peuvent être filtrées indépendamment).
  • Présente des informations sur le nombre total d'objets créés (y compris les déchets collectés). ANTS n'affiche que les statistiques d'objet «en direct». Cela facilite l'analyse et le réglage des performances globales de l'application (par exemple, identifier les endroits où de nombreux objets créés inutilement et qui ne fuient pas nécessairement).

En guise de résumé, je pense que ANTS vous aide à trouver ce qui fuit plus rapidement tandis que Scitech fournit un peu plus de détails sur les performances globales de la mémoire de votre application et des objets individuels une fois que vous savez ce qu'il faut regarder (par exemple, trace de pile lors de la création). Si la trace de la pile et le suivi des objets jetables non éliminés étaient ajoutés à ANTS, je ne verrais pas le besoin d'utiliser autre chose.

La source
Translate

J'ai récemment découvert EQATEC Profilerhttp://www.eqatec.com/tools/profiler. Il fonctionne avec la plupart des versions .NET et sur de nombreuses plates-formes. Il est facile à utiliser et certaines parties sont gratuites, même à des fins commerciales.

La source
Translate

[Divulgation complète]

Bien que pas encore aussi complet que certains des autres profileurs de mémoire .NET répertoriés ici, il existe une nouvelle entrée sur le marché appeléeJustTrace. Il est fabriqué par Telerik et son objectif principal est de rendre le traçage / profilage plus facile et plus rapide à faire pour tous les types d'applications (web / Silverlight / bureau).

Si vous avez déjà trouvé le profilage et l'optimisation intimidants ou lents avec d'autres outils, alorsJustTracepourrait valoir le coup d'œil.

La source
Translate

N'oublie pasnProf- un profileur de freeware parfaitement bon.

La source
Berg Lee
Translate

j'ai trouvédotTrace ProfilerparJetBrainsêtre un excellent outil de profilage pour .NET et leur mode ASP.NET est la qualité.

La source
Eudora Lee
Translate

PROFILER ANTS. Je n'en ai pas utilisé beaucoup, mais je n'ai pas vraiment de plaintes à propos des ANTS. La visualisation est vraiment utile.

La source
Suzanne Lee
Translate

AutomatedQA AQTimepour le timing etSciTech MemProfilerpour la mémoire.

La source
Humphrey Lee
Translate

Si vous recherchez quelque chose de rapide, facile et gratuit,http://code.google.com/p/slimtune/semble bien faire le travail.

La source
Translate

J'ai travaillé avecJetBrains dotTracepour WinForms et Console Apps (pas encore testé sur ASP.net), et cela fonctionne assez bien:

Ils ont également récemment ajouté une «licence personnelle» qui est nettement moins chère que celle d'entreprise. Pourtant, si quelqu'un d'autre en connaît des moins chers ou même gratuits, j'aimerais aussi en entendre parler :-)

La source
Octavia Lee
Translate

N'oubliez pas l'impressionnant scitechprofileur de mémoire .net

C'est idéal pour savoir pourquoi votre application .net manque de mémoire.

La source
Julia Lee
Translate

J'ajouterais la capacité de dotTrace àmémoire diff et sessions de suivi des performancesest absolument inestimable (ANTS peut également avoir une fonction de différence de mémoire, mais je n'ai pas vu de différence de performance).

Être capable d'exécuter une session de profilage avant et après une correction de bogue ou une amélioration, puis comparer les résultats est extrêmement précieux, en particulier avec une application .NET héritée gigantesque (comme dans mon cas) où les performances n'ont jamais été une priorité et où trouver des goulots d'étranglement pourrait être TRÈS fastidieux. Faire un différentiel avant et après vous permet de voirchangement du nombre d'appels pour chaque méthodeet lechangement de durée pour chaque méthode.

Cela est utile non seulement lors des changements de code, mais également si vous avez une application qui utilise une base de données différente, par exemple, pour chaque client / client. Si un client se plaint de lenteur, vous pouvez exécuter une session de profilage en utilisant sa base de données et comparer les résultats avec une base de données «rapide» pour déterminer quelles opérations contribuent à la lenteur. Bien sûr, il existe de nombreux outils de performance côté base de données, mais parfois j'aide vraiment à voir les mesures de performance du côté de l'application (car c'est plus proche de ce que l'utilisateur voit réellement).

Bottom line: dotTrace fonctionne très bien, et le diff est inestimable.

La source
Rosalind Lee
Translate

AQTimeest raisonnable, mais a un peu de courbe d'apprentissage et n'est pas aussi facile à utiliser que celui intégré dans Team Suite

La source
Quinn Lee
Translate

Dans le passé, j'ai utilisé le profileur fourni avecSystème d'équipe Visual Studio.

La source
Translate

La version actuelle deSharpDevelop (3.1.1)a un joli profileur intégré. C'est assez rapide et s'intègre très bien dans l'IDE SharpDevelop et son runner NUnit. Les résultats sont affichés dans un style d'arborescence / liste flexible (utilisez LINQ pour créer votre propre sélection). Un double-clic sur la méthode affichée saute directement dans le code source.

La source
Kennedy Lee
Translate

J'ai travaillé avec le profileur de RedGate dans le passé. A fait le travail pour moi.

La source
Una Lee
Translate

Je n'ai pas essayé moi-même, mais peut-êtredotTrace? Leur application ReSharper est certainement une bonne. Peut-être que dotTrace l'est aussi :)

La source
Translate

Je doute que le profileur fourni avec Visual Studio Team System soit le meilleur profileur, mais je l'ai trouvé assez bon à plusieurs reprises. De quoi avez-vous spécifiquement besoin au-delà de l'offre VS?

EDIT: Malheureusement, il n'est disponible que dans VS Team System, mais si vous y avez accès, cela vaut la peine de vérifier.

La source
Madeline Lee
Translate

La dernière version du profileur de mémoire ANTS (je pense que c'est 5) bascule tout simplement !!! Je hantais une fuite en utilisant WinDbg et SOS car il s'est avéré être le meilleur moyen avant, puis j'ai essayé ANTS et je l'ai obtenu en quelques minutes. Vraiment un logiciel merveilleux.

La source
Rachel Lee
Translate

Je voudrais ajoutervotre kitjava et .net profiler, je l'adore pour Java, mais je n'ai pas essayé la version .NET.

La source
Flora Lee
Translate

Malheureusement, la plupart des profileurs que j'ai essayés ont échoué lorsqu'ils sont utilisés avec des appels de queue, notamment ANTS. Je finis juste par écrire le mien. Il existe une implémentation simple sur CodeProject que vous pouvez utiliser comme base.

La source
Mavis Lee
Translate
Nelson Lee
Translate

Je dois vous apporter un outil incroyable que j'ai utilisé il y a quelque temps.AVICode Interceptor Studio. Dans mon entreprise précédente, nous avons utilisé ce merveilleux outil pour profiler l'application Web (Il s'agit de la plus grande application Web au monde et du plus grand projet informatique civil jamais réalisé). L'équipe de performance a fait des merveilles avec l'aide de ce magnifique outil. Il est difficile de le configurer, mais c'est une activité ponctuelle et je dirais que cela en vaut la peine. Check-outcette pagepour plus de détails.

Merci, James

La source
Eden Lee
Translate

Pour moi, SpeedTrace est le meilleur outil du marché car il ne vous aide pas seulement à trouver les goulots d'étranglement dans vos applications. Il vous aide également dans les scénarios de dépannage à découvrir pourquoi votre application plantait, votre configuration ne s'est pas installée, votre application a raccroché, les performances de votre application sont parfois médiocres en fonction de la saisie des données, par exemple pour identifier les transactions db lentes.

La source
Marico Lee
Translate

J'ai testé JustTrace de Telerik récemment et bien qu'il soit bien loin d'un produit fini, les gars vont dans la bonne direction.

La source
Translate

Si la licence est un problème, vous pouvez essayer WINDBG pour le profilage de la mémoire

La source
Translate

Le profileur NuMega True Time vit dans DevPartner Studio de Micro Focus. Il fournit des détails au niveau de la ligne et de la méthode pour les applications .NET nécessitant uniquement des PDB, aucune source nécessaire (mais cela aide.) La version 10.5 est livrée avec une nouvelle prise en charge de 64 processus le 4 février 2011. Plug sans vergogne: je travaille sur la ligne de produits DevPartner. Suivi àhttp://www.DevPartner.compour les nouvelles du lancement 10.5.

Clause de non-responsabilité: Je suis chef de produit pour DevPartner chez Micro Focus.

La source
Translate

J'ai trouvé de nombreux problèmes dans une grande application C # en utilisantce.

Habituellement, le problème se produit au démarrage ou à l'arrêt lorsque les plugins sont en cours de chargement et que des structures de Big Data sont créées, détruites, sérialisées ou désérialisées. Souvent, ils sont créés et initialisés plus d'une fois, et les gestionnaires de modifications sont ajoutés plusieurs fois, ce qui aggrave encore le problème.

Dans des cas comme celui-ci, le programme peut être si lent que seuls 2 échantillons suffisent pour identifier les sites d'appel de méthode / fonction / propriété coupables.

La source
Alger Lee
Translate

Nous avons sélectionné YourKit Profiler pour .NET dans mon entreprise car c'était le meilleur rapport qualité / prix (prix par rapport à la fonctionnalité). Pour une petite entreprise qui souhaite disposer de licences flexibles (licences flottantes), c'était un choix parfait - ANTS était à l'époque le médaillon des développeurs.

En outre, cela nous a permis de nous attacher au processus en cours, ce qui n'était pas possible avec dotTrace. Attention cependant, l'attachement n'est pas la meilleure option car tout .NET ralentira, mais c'était le seul moyen de profiler les applications .NET démarrées par d'autres processus. En termes de fonctionnalités, ANTS et dotTrace étaient meilleurs - mais à la fin YourKit était assez bon.

La source
Calvin Lee
Translate

Si vous êtes sur ASP.NET MVC, vous pouvez essayer MVCMiniProfiler (http://benjii.me/2011/07/using-the-mvc-mini-profiler-with-entity-framework/)

La source