8
votes

Options gratuites ou peu coûteuses pour l'analyse de profilage / performance pour C # ASP.NET?

Je sais que le profileur des fourmis de Redgate que j'entends est génial mais c'est aussi 400 $. Toutes les alternatives moins chères qui seront au moins signalez-moi là où je pourrais bien optimiser mon code?


1 commentaires

Voir Stackoverflow.com/Questtions/911932/... pour plus de discussion / options


4 Réponses :


3
votes

DotTrace est d'environ la moitié du prix des fourmis, et c'est vraiment bon. Fait par les mêmes personnes qui font de Resharper.

Si vous cherchez simplement une optimisation ponctuelle de votre code, vous devriez utiliser des fourmis de toute façon, car il dispose d'un essai gratuit de 15 jours complet, qui devrait suffire à obtenir beaucoup d'optimisation fait.


1 commentaires

J'utilise aussi dottrace et j'aurais définitivement deux ans cette recommandation.



2
votes

navires vsprofiler avec vs et fonctionne assez bien. Si vous envisagez des problèmes liés à la mémoire, clroprofiler sera votre option.


2 commentaires

Corrigez-moi si je me trompe, mais je pense que cela est uniquement disponible avec une édition d'équipe de Visual Studio.


Oui vous avez raison. Cependant, le profileur CLR est gratuit.



2
votes

En général, la méthode que j'utilise est Ceci .

Je ne suis pas tellement intéressé par des morceaux de chronométrage du code comme dans la recherche de grands preneurs de temps inutiles afin que je puisse les nettoyer et accomplir la vitesse.

C'est vraiment un processus différent.

Ajouté: Si je peux élaborer des problèmes de performance typiques, je vois que certaines activités (qui sont presque toujours un appel de fonction) consomment une fraction de temps, comme 10%, 50%, 90%, peu importe, et c'est Pas vraiment nécessaire - il peut être remplacé par quelque chose d'autre ou non fait du tout, et que la quantité de temps sera enregistrée.

Supposons pour une illustration de 50%.

Je prends des échantillons de temps au hasard de la pile d'appels, 10 par exemple, et que cet appel a une chance de comparution de 50% de chacun, de sorte que cela dépassera environ la moitié des échantillons. Ainsi, cela attirera mon attention et je vais chercher à voir si ce qu'il fait est vraiment nécessaire, et sinon, je vais le réparer pour obtenir le speed-up.

Maintenant, était-ce que mesurer? Si tel est le cas, c'était vraiment une mauvaise mesure, car le nombre d'échantillons était si petit. Si 5 échantillons sur 10 ont montré l'appel, la fraction du temps est probablement d'environ 50%, donner ou prendre, et c'est certainement supérieur à 10%. Je ne connais peut-être pas le pourcentage avec précision, mais je sait certainement que cela vaut la peine d'être fixé , et je savez certainement exactement où le problème est .

(Note latérale: Je n'ai pas compté le nombre d'appels, ni estimer la durée des appels. Au lieu de cela, j'ai estimé le coût de l'appel, ce qui élimine qu'il sauverait, c'est son temps de résidence fractionnaire sur la pile. Notez également que je travaille sur le niveau appel , pas le niveau fonction . Je me soucie peut-être des appels de fonction ci-dessus et en dessous de l'appel d'intérêt, mais autrement que cela, Problèmes de niveau de la fonction, tels que le temps exclusif, les graphes d'appels et la récursivité, ne jouent aucune pièce.)

C'est pourquoi je dis la mesure de la performance et de trouver des problèmes de performance, alors qu'ils peuvent être complémentaires, sont des tâches vraiment différentes.


1 commentaires

... ah, un autre entraînement anonyme. Mais la réponse fonctionne toujours.



7
votes

EQATEC Profiler est gratuit.

Je ne l'ai pas essayé moi-même, mais ça sonne bien et il y a des témoignages positifs sur leur site.

Je serais intéressé d'entendre l'opinion de quiconque l'a réellement utilisé.


2 commentaires

C'est simple mais obtient le travail. Et c'est gratuit (pour usage personnel) qui est génial.


J'ai rapidement abandonné la codeanalyste d'AMD parce que je ne pouvais pas comprendre comment obtenir une analyse de "le temps total passé dans chaque méthode". Alors j'ai fatigué la version gratuite d'Eqatec. Cela fonctionne bien pour moi ... m'a dit exactement où mon problème était dans environ cinq minutes ... y compris l'enregistrement, le téléchargement, l'installation, la configuration et l'exécution de ma première analyse. ERGO: C'est vraiment facile à utiliser. Comment avons-nous eu quelque chose de fait avant Google?