Question

J'ai besoin d'un profileur C#.

Même si je ne suis pas opposé à en payer un, quelque chose de gratuit ou au moins avec une version d'essai serait idéal car il faut du temps pour passer un bon de commande.

Des recommandations ?

Était-ce utile?

La solution

Vous pouvez essayer ce qui suit :


Modifier:Nprof a été remplacé par SlimTune et fonctionne avec les applications .Net 4.0

Autres conseils

j'ai utilisé Profileur de fourmis sur un grand projet c# il y a un an et demi.Il a vraiment très bien fonctionné pour son prix et a même surpassé quelques-uns des concurrents les plus chers.

Il calcule le coût avec une résolution presque ligne par ligne.

Le Profileur EQATEC est très bon et totalement gratuit.Il est facile à configurer et à utiliser, et ne semble pas ajouter trop de surcharge à l'application.Je viens juste de commencer à l'utiliser aujourd'hui et j'ai déjà trouvé quelques goulots d'étranglement que je n'aurais pas repéré autrement.

pointTrace de JetBrains est largement utilisé.

Patrick Smacchia est génial NDépend est excellent pour fournir une analyse statique.

Je maintiens une approche globale liste des profileurs pour .NET sur SharpToolbox.com.

Vous y trouverez les outils suggérés ici et bien d'autres, chacun avec une brève description de ce qu'il propose.

Il est intéressant de noter que personne ne mentionne qu'il en existe une dans les versions haut de gamme de Visual Studio. J'ai toujours trouvé que cela était suffisant pour le profilage d'exécution.Pour le profilage de la mémoire, j'utilise Memory Profiler qui a déjà été mentionné, mais n'est-ce pas ce que je décrirais généralement comme « un profileur ».

Quel genre de profil essayiez-vous de faire ?

Nous utilisons Profileur de fourmis où je travaille.Il donne des informations très détaillées de manière simple.

Nous utilisons Profileur de mémoire .NET.C'est un peu moche mais très utile pour trouver des références pendantes.

J'ai d'abord essayé Profileur FOURMIS de Red Gate ce qui est très sexy, mais du point de vue des fuites de mémoire, c'est nul pour les raisons suivantes :

1) C'est ridiculement lent.Il a fallu une demi-heure pour que l'application soit en mesure de démarrer l'enregistrement (cela prend 20 secondes sans porte rouge).

2) Red Gate doit exécuter son propre outil sur son propre outil.Il utilisait 900 Mo de mémoire au moment où j'ai terminé deux instantanés !Il s'est ensuite écrasé :(

Cependant, la composante temporelle de Red Gate ANTS était impressionnante.Ne vous embêtez pas avec le profileur de mémoire, sauf si vous avez affaire à une application triviale (à faible encombrement).

J'ai utilisé AQtime et cela ne m'a jamais laissé tomber.Je suis sûr qu'il existe une version d'essai.

je seconderai profileur de fourmis de Red Gate.Je l'ai utilisé pour détecter des problèmes de performances vraiment troublants. Il était extrêmement simple à utiliser (faible courbe d'apprentissage) et présentait des données agréables et détaillées d'une manière facile à comprendre.Le prix en vaut la peine, mais ce n'est pas gratuit...

Le Ndepennd génial de Patrick Smacchia est excellent pour fournir une analyse statique.

Je recommanderais vivement NDepend pour l'analyse statique, mais sachez simplement que vous devrez probablement prévoir un jour ou deux pour analyser réellement la quantité d'informations qu'il fournit et déterminer ce que toutes les statistiques signifient réellement en termes de votre code.

J'ai eu de la chance avec le profileur de mémoire .NET

Le profileur EQATEC a fait le travail ici.

La version actuelle de SharpDévelopper (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 arbre/liste flexible (utilisez LINQ pour créer votre propre sélection).Un double-clic sur la méthode affichée permet d'accéder directement au code source.

Je ne les utilise pas actuellement, un de mes amis s'extasie sur le profileur Ants.Je sais que c'est un produit payant, je ne sais pas combien il est cher.Si vous employez un MVP, vous pourrez peut-être en tirer parti pour obtenir une licence gratuite.

AQTime (perf et mémoire) ou ANTS (profileur de performances v4 ou profileur de mémoire bêta v5) ici.

J'ai trouvé le Profileur de mémoire .NET hier, et je dois dire que j'en suis très impressionné.
Je vais commander mon permis aujourd'hui.

Bien qu'il ne soit pas très efficace pour profiler l'utilisation de la mémoire, le profileur inclus dans certaines versions de Visual Studio fait un très bon travail de profilage de la vitesse d'exécution.

Quel est votre objectif ?

Votre objectif est-il de localiser des instructions spécifiques et d'avoir une idée approximative de ce qu'elles contribuent à votre temps d'exécution total, afin de pouvoir trouver des moyens de les faire différemment ?

Pour cela, je jure par cette méthode.

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