Question

Ce profileurs avez-vous utilisé lorsque vous travaillez avec .net des programmes, et qui pourraient vous recommandons particulièrement?

Était-ce utile?

La solution

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 ex.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:

L' Scitech memory profiler 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 à sortir 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.

Autres conseils

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 le 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

  • En un seul clic filtres pour trouver des fuites y compris: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 .NET versions et sur un tas de plates-formes.Il est facile à utiliser et pièces de il est gratuit, même pour un usage commercial.

[La Divulgation Complète]

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é 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 - un parfaitement bon, freeware profiler.

J'ai trouvé dotTrace Profiler par JetBrains pour être un excellent outil de profilage pour les .NET et leur ASP.NET mode est de qualité.

ANTS Profiler.Je n'ai pas utilisé beaucoup, mais je n'ai pas vraiment toutes les plaintes à propos des FOURMIS.La visualisation est vraiment utile.

AutomatedQA AQTime pour le calendrier SciTech MemProfiler pour la mémoire.

Si vous êtes à la recherche de quelque chose de rapide, facile et gratuit, http://code.google.com/p/slimtune/ semble faire le travail très bien.

J'ai travaillé avec JetBrains dotTrace pour WinForms et de la Console d'Applications (non testé sur les ASP.net encore), et il fonctionne très bien:

Ils ont récemment ajouté une sorte de "Licence" qui est nettement moins cher que la corporation.Encore, si quelqu'un d'autre sait moins cher ou même gratuit, je tiens à les entendre ainsi :-)

Ne pas oublier le génial scitech .net memory profiler

Il est idéal pour la traque pourquoi votre .net application est en cours d'exécution hors de la mémoire.

Je voudrais ajouter que dotTrace capacité à diff de la mémoire et de la performance des sessions de suivi est absolument indispensable (les FOURMIS peuvent aussi avoir une mémoire de diff, mais je n'ai pas vu les performances de diff).

Être en mesure d'exécuter une session de profilage avant et après la réparation d'un bug ou d'amélioration, puis de comparer les résultats sont extrêmement précieux, surtout avec un énorme héritage .NET application (comme dans mon cas) où la performance n'a jamais été une priorité et où trouver les goulots d'étranglement peut être TRÈS fastidieux.Faire un "avant-après" diff permet de voir les changement dans le nombre d'appels pour chaque méthode et la changement de la durée prévue pour chaque méthode.

C'est très utile, non seulement pendant les changements de code, mais aussi si vous avez une application qui utilise une base de données différente de, disons, pour chaque client/client.Si un client se plaint de la lenteur, vous pouvez exécuter une session de profilage à l'aide de leur base de données et de comparer les résultats avec un "rapide" de la base de données afin de déterminer les opérations qui contribuent à la lenteur.Bien sûr, il ya beaucoup de la base de données du côté de la performance des outils, mais parfois j'ai vraiment l'aide à voir les mesures de performances de l'application (car c'est plus proche de ce que l'utilisateur est en train de voir).

Bas de ligne:dotTrace fonctionne très bien, et la diff est inestimable.

AQTime est raisonnable, mais a un peu d'une courbe d'apprentissage et n'est pas aussi facile à utiliser que de l'intégré dans une Équipe la Suite

Dans le passé, j'ai utilisé le générateur de profils livré avec Visual Studio Team System.

La version actuelle de SharpDevelop (3.1.1) a une belle profiler intégré.C'est assez rapide, et s'intègre très bien dans le SharpDevelop IDE et de ses NUnit coureur.Les résultats sont affichés dans un Arbre flexible/style de Liste (utiliser LINQ pour créer votre propre sélection).Double-cliquant sur l'affiche de la méthode des sauts directement dans le code source.

J'ai travaillé avec RedGate de profiler dans le passé.Fait le travail pour moi.

N'ai pas essayé moi-même, mais peut-être dotTrace?Leur ReSharper application est certainement bonne.Peut-être dotTrace est trop :)

Je doute que le profiler, qui est fourni avec Visual Studio Team System est le meilleur profiler, mais j'ai trouvé que c'était bien assez à de nombreuses reprises.Ce que précisément vous avez besoin au-delà de ce que VS?

EDIT:Malheureusement il n'est disponible que dans VS Équipe Système, mais si vous avez accès à qui il vaut la peine de vérifier.

La dernière version de FOURMIS profileur de mémoire (je pense que c'est 5), il suffit de roches!!!J'ai été hantise d'une fuite à l'aide de WinDbg et SOS depuis il s'est avéré être la meilleure façon avant, puis j'ai essayé les FOURMIS et je l'ai eu en quelques minutes.Vraiment un merveilleux morceau de logiciel.

Je tiens à ajouter yourkit java et .net profiler, je l'aime pour Java, n'ai pas essayé .NET version.

Malheureux la plupart des profileurs j'ai essayé échoué lorsqu'il est utilisé avec la queue d'appels, notamment les FOURMIS.Je viens de finir l'écriture de mon propre.Il est simple de mise en œuvre sur CodeProject que vous pouvez l'utiliser comme une base.

Intel® VTune™ Analyseur De Performances pour rapide d'échantillonnage

Je dois apporter un outil incroyable pour vos avis que j'ai utilisé parfois en arrière. AVICode Intercepteur Studio.Dans mon ancienne entreprise, nous avons utilisé cet outil merveilleux pour le profil de la webapplication (C'est censé être le plus important de l'application web dans le monde et le plus grand civil projet jamais fait).La performance de l'équipe ont fait des merveilles avec l'aide de ce magnifique outil.C'est une douleur pour le configurer, mais c'est une seule fois et je dirais qu'il vaut le temps.La caisse cette page pour plus de détails.

Merci, James

Pour moi SpeedTrace est le meilleur outil sur le marché car il n'est pas seulement de vous aider à trouver les goulots d'étranglement à l'intérieur de vos applications.Il vous aide également dans les scénarios de dépannage pour trouver pourquoi votre demande a été s'écraser, votre programme d'installation n'a pas le droit d'installer votre application raccroché, des performances de votre application est parfois médiocre en fonction des données d'entrée, par exemplepour identifier ralentir les transactions db.

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

Si la Licence est une question que vous pourriez essayer de WINDBG pour le profilage de la mémoire

Le NuMega Vrai Temps profiler vit dans DevPartner Studio par Micro Focus.Il fournit à la ligne et au niveau de la méthode de détails pour .NET applications ne nécessitant que Pdb, aucune source nécessaire (mais ça aide.) Il peut faire la différence entre algorithmiquement lourd routines par rapport à ceux avec de longs I/O attend à l'aide de notre propriété par thread noyau mode de synchronisation du pilote.Version 10.5 est livré avec de nouveaux 64-processus de support sur février 4, 2011.Plug sans vergogne:Je travail sur la DevPartner ligne de produits.Le suivi à http://www.DevPartner.com des nouvelles de l'10.5 lancement.

Avertissement:Je suis le chef de Produit pour DevPartner au Micro Focus.

J'ai trouvé beaucoup de problèmes dans une grande application en C# à l'aide de cette.

Habituellement, le problème se produit lors du démarrage ou de l'arrêt que les plugins sont chargés, et les grandes structures de données sont créés, détruits, sérialisé, ou désérialisé.Souvent, ils sont créés et initialisés plus d'une fois, et le changement des gestionnaires ajouté à de multiples reprises, ce qui aggrave encore le problème.

Dans ce cas, le programme peut être si lent que seuls 2 échantillons sont suffisantes pour identifier le coupable de la méthode / fonction / appel de propriété sites.

Nous avons sélectionné YourKit Profiler pour .NET dans mon entreprise, comme c'était le meilleur rapport prix / fonctionnalité).Pour une petite entreprise qui veut avoir la flexibilité des licences (licences flottantes) c'était un choix parfait - FOURMIS est le développeur siège médaillon à l'époque.

Aussi, il nous a donné la possibilité de joindre au processus en cours d'exécution qui n'a pas été possible avec dotTrace.Attention cependant que la fixation n'est pas la meilleure option, car tout .NET va ralentir, mais c'était la seule façon de profil .NET applications a commencé par d'autres processus.Caractéristique sage, les FOURMIS et les dotTrace étaient mieux - mais à la fin YourKit était assez bon.

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

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