Kostenlose oder kostengünstige Optionen für Profilerstellung / Performance-Analyse für C # asp.net? [geschlossen]

8

Ich weiß von Redgates Ameisen-Profiler, den ich höre, ist toll, aber es sind auch 400 $. Irgendwelche billigeren Alternativen da draußen, die mich wenigstens dahin bringen, wo ich meinen Code optimieren müsste?

    
codette 17.07.2009, 22:41
quelle

4 Antworten

3

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.

    
womp 17.07.2009, 22:58
quelle
7

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.

    
LukeH 21.08.2009 16:22
quelle
2

VSProfiler kommt mit VS und funktioniert ziemlich gut. Wenn Sie sich mit Speicherproblemen beschäftigen, ist CLRProfiler die richtige Wahl.

    
mfawzymkh 18.07.2009 00:21
quelle
2

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.

    
Mike Dunlavey 19.07.2009 00:59
quelle

Tags und Links