Dottrace ist etwa die Hälfte des Preises von Ants, und es ist wirklich gut. Hergestellt von den gleichen Leuten, die ReSharper machen.
Wenn Sie nur nach einer einmaligen Optimierung Ihres Codes suchen, sollten Sie sich trotzdem für Ameisen entscheiden, da es eine 15-tägige kostenlose Testversion mit vollem Funktionsumfang gibt, die für eine Menge Optimierung ausreichen sollte fertig.
EQATEC Profiler ist kostenlos.
Ich habe es selbst nicht versucht, aber es klingt ok und es gibt einige positive Zeugnisse auf ihrer Website.
Es würde mich interessieren, die Meinung von jemandem zu hören, der es tatsächlich benutzt hat.
Im Allgemeinen verwende ich die Methode das .
Ich bin nicht so sehr daran interessiert, Teile des Codes zu timern, als große unnötige Zeitnehmer zu finden, damit ich sie sauber machen und beschleunigen kann.
Es ist wirklich ein anderer Prozess.
HINZUGEFÜGT: Wenn ich näher ausführen kann, sind typische Performance-Probleme, die ich sehe, dass einige Aktivitäten (die fast immer ein Funktionsaufruf sind) einen Bruchteil der Zeit verbrauchen, wie 10%, 50%, 90%, was auch immer nicht wirklich notwendig - es kann durch etwas anderes oder überhaupt nicht ersetzt werden, und diese Menge an Zeit wird gespeichert.
Nehmen wir zur Illustration an, es ist 50%.
Ich nehme Zufallszeit-Samples des Call-Stacks, zum Beispiel 10, und dieser Call hat eine Chance von 50%, auf jedem einzelnen zu erscheinen, also wird es auf ungefähr der Hälfte der Samples sein. So wird es meine Aufmerksamkeit auf sich ziehen, und ich werde schauen, ob das, was es tut, wirklich notwendig ist, und wenn nicht, werde ich es beheben, um die Beschleunigung zu erreichen.
Nun, war das Messen? Wenn ja, war es wirklich schlechte Messung, weil die Anzahl der Proben so klein war. Wenn 5 von 10 Proben den Anruf zeigten, ist der Anteil der Zeit wahrscheinlich um 50%, geben oder nehmen, und es ist definitiv mehr als 10%. Ich kenne den Prozentsatz vielleicht nicht genau, aber ich weiß definitiv, dass es sich lohnt, zu reparieren, und ich weiß definitiv genau, wo das Problem liegt .
(Randnotiz: Ich habe weder die Anzahl der Anrufe gezählt, noch die Gesprächsdauer geschätzt. Vielmehr habe ich die Kosten des Anrufs geschätzt, was die Entfernung des Anrufs bedeutet, nämlich die anteilige Verweildauer auf dem Stapel. Beachten Sie auch, dass ich auf der Ebene call arbeite, nicht auf der Ebene function . Es mag mich interessieren, welche Funktionsaufrufe oberhalb und unterhalb des Aufrufs von Interesse sind. Probleme auf Funktionsebene, wie z. B. exklusive Zeit, Aufrufdiagramme und Rekursion, spielen keine Rolle.)
Das ist der Grund, warum ich sage, dass Leistungsmessung und das Finden von Leistungsproblemen, obwohl sie sich gegenseitig ergänzen, wirklich unterschiedliche Aufgaben sind.
Tags und Links c# asp.net performance profiler