Gibt es anständige C # -Profiler da draußen? [geschlossen]

83

Ich brauche einen C # -Profiler.

Obwohl ich nicht abgeneigt bin, für eine zu bezahlen, wäre etwas, das kostenlos ist oder zumindest eine Testversion enthält, ideal, da es einige Zeit dauert, eine Bestellung aufzugeben.

Irgendwelche Empfehlungen?

Gareth Simpson
quelle
5
Mögliches Duplikat von Was sind einige gute .NET-Profiler?
BlueRaja - Danny Pflughoeft
Es sagt viel über SO aus, dass ein Grund für die Zensur einer Frage darin besteht, dass "wahrscheinlich eine Debatte ausgelöst wird".
Glenn Maynard

Antworten:

35

Sie können Folgendes versuchen:


Bearbeiten: Nprof wurde durch SlimTune ersetzt und funktioniert mit .NET 4.0-Anwendungen

jfs
quelle
7
Ich habe mit ProfileSharp herumgespielt. Es ist absolut schrecklich.
Matthew Ruston
1
nprof ist .Net 1.1 nur denke ich. Wenn Sie mit .Net 1.1 kompilieren können, kann es dennoch nützlich sein, das Profil zu erstellen und dann zur Veröffentlichung erneut mit .Net 2 zu kompilieren. Dies ist jedoch nicht möglich, wenn Sie .Net2-Funktionen wie Generika und nullfähige Typen verwenden.
Redcalx
1
Stimmen Sie mit Matthew überein, ProfileSharp ist schrecklich, konnte es nicht einmal zum Profilieren der einfachsten Befehlszeilen-Exe bringen. Verschwenden Sie nicht Ihre Zeit
Michael Dausmann
Die Entwicklung auf nprof scheint sich in letzter Zeit beschleunigt zu haben.
Brian Ortiz
1
Ich habe .Net Memory Profiler verwendet, um einen Speicherverlust zu finden. Es ist sehr gut. Es hat mein Gütesiegel!
Zylonische Katze
40

Ich habe Ants Profiler vor anderthalb Jahren für ein großes c # -Projekt verwendet. Es lief wirklich sehr gut für das, was es kostete, und übertraf sogar einige der teureren Konkurrenten.

Die Kosten werden mit einer zeilenweisen Auflösung berechnet.

AdamSane
quelle
1
Ich mag auch ANTS. Es ist von Redgate.
Marcel
32

Der EQATEC Profiler ist sehr gut und völlig kostenlos. Es ist einfach einzurichten und zu verwenden und scheint der Anwendung keinen allzu großen Aufwand zuzufügen. Ich habe gerade erst damit begonnen und habe bereits einige Engpässe gefunden, die ich sonst nicht entdeckt hätte.

HullCitySteve
quelle
Nicht kostenlos für eine kommerzielle Lizenz (aber immer noch billig, 200 US-Dollar).
Mhenry1384
Ja, es sieht so aus, als hätten sie die Lizenz für die neueste Version geändert und Gebühren für die kommerzielle Nutzung erhoben. Ich kann es trotzdem sehr empfehlen.
HullCitySteve
3
Update - es sieht so aus, als hätten sie die Lizenzbedingungen erneut geändert, um sie für die kommerzielle Nutzung für Standard-.NET-Anwendungen (aber nicht für CF oder Silverlight) kostenlos zu machen
HullCitySteve
3
Die Lizenzbedingungen haben sich in Release 3.6 erneut geändert: Sie sind jetzt für alle Plattformen, einschließlich CF und Silverlight, kostenlos , wobei die Anzahl der DLLs, die in einer Sitzung instrumentiert werden können, begrenzt ist.
Richard Flamsholt
3
Nicht mehr kostenlos und wurde von Telerik aufgekauft :(
Pingoo
29

dotTrace von JetBrains ist weit verbreitet.

Patrick Smacchias fantastisches NDepend eignet sich hervorragend für statische Analysen.

Leon Bambrick
quelle
1
dotTrace ist wirklich ein ausgezeichneter Profiler, der extrem einfach zu bedienen ist.
Stefan Monov
dotTrace 3.1 funktioniert nicht mit .NET 4. Wir müssen auf dotTrace 4.0 warten.
Bobby Cannon
1
Als Update unterstützen sowohl dotTrace 4 Performance als auch dotTrace 3.5 Memory .NET 4.
Jura Gorohovsky
11

Ich führe eine umfassende Liste von Profilern für .NET auf SharpToolbox.com.

Dort finden Sie die hier vorgeschlagenen und weitere Tools mit jeweils einer kurzen Beschreibung der Vorschläge.

Fabrice
quelle
Dies scheint veraltet zu sein (Redgate-Einträge sind ziemlich veraltet)
Andrew Harry
Harry, danke, dass du darauf hingewiesen hast. Die Informationen zu allen RedGate-Produkten sind jetzt aktuell. sharptoolbox.com/authors/red-gate-software
Fabrice
7

Es ist interessant, dass niemand erwähnt, dass es eine in den High-End-Versionen von Visual Studio gibt - ich habe immer festgestellt, dass dies gut genug für die Ausführung von Ausführungsprofilen ist. Für die Speicherprofilerstellung verwende ich den bereits erwähnten Speicherprofiler, der jedoch nicht als "Profiler" bezeichnet wird.

Welche Art von Profilerstellung haben Sie versucht?

Will Dean
quelle
7

Wir verwenden Ants Profiler, wo ich arbeite. Es gibt auf einfache Weise sehr detaillierte Informationen.

mbillard
quelle
6

Wir verwenden .NET Memory Profiler . Es ist ein bisschen hässlich, aber sehr nützlich, um baumelnde Referenzen zu finden.

Ich habe ursprünglich den ANTS-Profiler von Red Gate ausprobiert, der sehr sexy ist, aber aus Sicht des Speicherverlusts ist er aus folgenden Gründen zum Kotzen:

1) Es ist lächerlich langsam. Es dauerte eine halbe Stunde, bis die Anwendung in einen Zustand versetzt war, in dem die Aufnahme gestartet werden konnte (dauert 20 Sekunden ohne Red-Gate).

2) Red Gate muss sein eigenes Werkzeug auf seinem eigenen Werkzeug ausführen. Als ich zwei Schnappschüsse fertigstellte, waren 900 MB Speicher belegt! Es stürzte dann ab :(

Die Timing-Komponente von Red Gate ANTS war jedoch beeindruckend. Kümmern Sie sich nur nicht um den Speicherprofiler, es sei denn, Sie haben es mit einer trivialen Anwendung (geringer Platzbedarf) zu tun.

Craigger
quelle
2
Haben Sie v4 von beiden ausprobiert? Es ist jetzt viel besser :)
Thecoop
4

Ich habe AQtime verwendet und es hat mich nie im Stich gelassen. Ich bin sicher, dass es eine Testversion gibt.

Kennzeichen
quelle
AQTime hat gegenüber ANTs einen großen Vorteil, da es nicht verwalteten Code unterstützt.
Rick Minerich
3

Ich werde den ANTS-Profiler von Red Gate unterstützen . Ich habe es verwendet, um einige wirklich problematische Leistungsprobleme aufzuspüren, und es war kinderleicht zu bedienen (niedrige Lernkurve) und präsentierte nette, detaillierte Daten auf eine Weise, die leicht zu verstehen war. Das Preisschild ist es wert, aber es ist nicht kostenlos ...

Jason Sundram
quelle
2

Patrick Smacchias fantastisches NDepend eignet sich hervorragend für statische Analysen.

Ich würde NDepend für die statische Analyse uneingeschränkt empfehlen, aber seien Sie gewarnt, dass Sie wahrscheinlich ein oder zwei Tage Zeit einplanen müssen, um die darin enthaltenen Informationen zu analysieren und herauszufinden, was alle Statistiken tatsächlich bedeuten dein Code.

Lomaxx
quelle
2

Ich hatte viel Glück mit dem .NET-Speicherprofiler

Medizinmann
quelle
2

Der EQATEC-Profiler hat hier die Arbeit erledigt.


quelle
2

Die aktuelle Version von SharpDevelop (3.1.1) hat einen schönen integrierten Profiler. Es ist ziemlich schnell und lässt sich sehr gut in die SharpDevelop IDE und ihren NUnit Runner integrieren. Die Ergebnisse werden in einem flexiblen Baum- / Listenstil angezeigt (verwenden Sie LINQ, um Ihre eigene Auswahl zu erstellen). Durch Doppelklicken auf die angezeigte Methode wird direkt in den Quellcode gesprungen.

David Schmitt
quelle
1

Verwenden Sie sie derzeit nicht, ein Freund von mir schwärmt von Ants Profiler. Ich weiß, es ist ein kostenpflichtiges Produkt, nicht sicher, wie teuer. Wenn Sie zufällig einen MVP besetzen, können Sie diesen möglicherweise nutzen, um eine kostenlose Lizenz zu erhalten.

Entwicklung von Chris
quelle
Können Sie etwas mehr Details über die gesamte MVP-Sache liefern? danke,
kay.one
MVPs erhalten die Lizenz, Redgate-Produkte kostenlos zu erhalten. Dies ist eine Lücke, in die Sie gelangen, wenn Sie Leute in Ihrem Team haben, die MVPs sind und die Kosten zu einem Problem machen.
DevelopingChris
Haben Sie einen Link, der diese Lücke beschreibt und wie Sie daraus Kapital schlagen können?
Keith Sirmons
1

AQTime (sowohl Perf als auch Memory) oder ANTS (v4 Performance Profiler oder v5 Beta Memory Profiler) hier.

Miha Markic
quelle
0

Der in einigen Versionen von Visual Studio enthaltene Profiler ist zwar nicht sehr gut für die Profilspeichernutzung geeignet, leistet jedoch einen sehr guten Beitrag zur Profilerstellung der Ausführungsgeschwindigkeit.

Meta-Knight
quelle
Eine Möglichkeit, zum VS2010-Profiler zu gelangen, besteht darin, nach dem Laden einer Lösung im Menü "Debuggen" nach "Leistungsanalyse starten" zu suchen. Details zu den Funktionen finden Sie unter msdn.microsoft.com/query/…
ShawnFeatherly
0

Was ist dein Ziel?

Ist es Ihr Ziel, bestimmte Anweisungen zu finden und eine ungefähre Vorstellung davon zu bekommen, was sie zu Ihrer gesamten Ausführungszeit beitragen, damit Sie Wege finden, sie anders auszuführen?

Dafür schwöre ich auf diese Methode.

Mike Dunlavey
quelle