Wir verwenden JetBrains 'dotTrace. Welche anderen Profiling-Tools können für die Profilerstellung von C# Windows Forms-Anwendungen empfohlen werden?Best .NET Speicher und Leistungsprofiler?
Antwort
Nein. Ich habe so ziemlich jeden .NET Profiler auf dem Markt ausprobiert (ANTS, vTune, OptimizeIt, DevPartner, YourKit), und meiner Meinung nach ist dotTrace das Beste von allen. Es ist einer von nur zwei Profilern, die ich verwendet habe (der andere ist YourKit), der genug Overhead hat, um eine hoch CPU-intensive Anwendung zu handhaben.
Wenn und nur wenn Ihre Anwendung relativ leicht ist, könnte ich ANTS Profiler empfehlen. Die Line-by-Line-Statistiken sind manchmal sehr nützlich, aber sie haben einen Preis in der Effizienz der Profilerstellung.
Ich verwendete ANTS auf einem Optimierer, der den Prozessor vollständig verwendet und es schien gut zu funktionieren. –
Ich mag die dotTrace-Serie auch sehr. Eine Sache jedoch zu beachten, es erzeugt sehr ungenaue Zeiten für alles, was Linq-zu-Sql (L2S) im Tracing-Modus (für kompilierte und gewöhnliche Abfragen) verwandt ist. Der Sampling-Modus hat dieses Problem möglicherweise nicht, ist aber viel weniger nützlich. Die DotTrace 4-Serie hatte das gleiche Problem in den späten Betas. Ich weiß nicht, ob sie das wirklich repariert haben. Ich denke, es ist ein allgemeines Problem mit Code, der stark auf Ausdrucksbaumstrukturen beruht. – skarmats
Um nicht zu sagen, dass die anderen Profiler nicht darunter leiden. Wenn ich mich recht erinnere, war der ANTS-Profiler in dieser Hinsicht besser, hat aber im Vergleich zu dotTrace eine ineffiziente/nervige Benutzeroberfläche. Ich testete ein anderes Produkt, das auch Probleme damit hatte. Can not erinnern, welche obwohl - eines der (ehemals) bekanntesten Produkte. Wie auch immer, das ist ein ziemlich großer Ärger, da Sie die ungenau gemessenen Methoden nicht herausfiltern können und die Werte nicht proportional zueinander setzen können. – skarmats
Wir verwenden DotTrace wie Sie, aber in der Vergangenheit haben wir Ants Profiler von RedGate verwendet. Es ist auch ein nettes Werkzeug.
Ants Profiler hat gerade die Version 4 veröffentlicht.
Wir verwenden es und sind sehr zufrieden damit. Es gibt eine 14-tägige Testversion (wie für die meisten Angebote).
Für die Speicherprofilerstellung haben Sie sowohl den kostenlosen CLR Profiler als auch den kommerziellen .NET memory profiler. Beide sind ausgezeichnet, aber letzteres ist ein bisschen mehr poliert.
Ich bin sehr glücklich mit RedGate ANTS. Der einzige andere, den ich ausprobierte, war der, der mit Visual Studio Team kommt, und es ist scheiße.
Ich bevorzuge eigentlich die VS one, es gibt mir mehr Infos als ANTS. Vielleicht bevorzugen Sie den ANTS-Profiler, aber ich stimme nicht zu, dass der VS-Server saugt. Es funktioniert gut, wenn Sie wissen, wie man es benutzt. –
Red-Gate ist das beste –
Nicht mehr. Zum Speicherprofilen empfehle ich jetzt SciTech. Es gibt Ihnen Zusammenfassungen von Speicherverlusten, die durch streunende Delegaten/Ereignishandler verursacht wurden, und warnt Sie, wenn Objekte finalisiert werden, statt explizit zu verwerfen. –
nProf ist ein gutes Werkzeug, wenn Sie etwas freies suchen. Es ist ein bisschen nervig an Punkten und ein kleiner Buggy, aber wenn Sie ein knappes Budget haben, wird es den Job machen.
Wie verwenden Sie es? Wo finde ich eine Dokumentation? – Germstorm
Scheint so, als ob vor kurzem nProf etwas Leben eingeatmet hatte. In den letzten Jahren ist es ziemlich stagniert. Trotzdem keine Dokumentation. Ich denke, deine beste Wette ist, es einfach auszuprobieren. Es ist ein ziemlich schlankes Programm, ohne viele Optionen. Im Grunde starten Sie einfach Ihr Programm vom Profiler und es zeichnet auf, wie lange jede Methode dauert. Wenn Sie Ihr Programm ausführen, erhalten Sie eine Gesamtmenge davon, wie lange die einzelnen Methoden verwendet wurden. Am besten ist es, die langsamen Teile Ihrer Anwendung zu durchlaufen, sogar nur eine Aktion nach der anderen, und zu sehen, wo es langsam ist. – Kibbee
Wir sind wirklich gut mit AQTime. Das Großartige an unserer Sicht ist, dass es auch die nicht verwalteten Teile unseres Codes tut.
Es wurde noch nicht erwähnt, aber für die Speicheranalyse Windbg ist etwa so gründlich und Low-Level wie Sie bekommen können. Die Verwendung in Verbindung mit sos.dll ist unglaublich leistungsfähig, aber es gibt eine ziemlich steile Lernkurve.
Es ist ein kostenloses Tool, und Tess Ferrandez Blog ist ein großartiger Ort, um damit zu beginnen. ANTS und andere Profiler sind viel benutzerfreundlicher, aber Windbg kann den verwalteten Haufen wie kein anderer meiner Meinung nach in Scheiben schneiden.
Ich habe die EQATEC Profiler verwendet. Es ist kostenlos und ist ein Code-Profiler, kein Speicher-Profiler.
Es ist ziemlich einfach, aber besser als nichts, wenn Sie einen kostenlosen Profiler möchten. –
Für neue Leser; EQATEC Profiler wird ab Dezember 2013 auslaufen und durch den nicht freien Telerik JustTrace ersetzt. – Polymorphix
Sitefinity hat mich auf irgendwas Telerik ziemlich sauer gemacht. – MrBoJangles
Ich habe die kostenlose SlimTune seit seiner letzten Veröffentlichung verwendet. Obwohl es eine minimale Schnittstelle hat, ist es super einfach zu bedienen und bietet eine gute Diagnose, die mir schon sehr geholfen hat. Es unterstützt derzeit zwei Arten von Anzeigen, von denen eine ähnlich wie nProf ist. Es ist vom selben Entwickler wie SlimDX, also erwarte ich, dass das Tool auf kurze Sicht noch besser wird.
EDIT: Soweit ich weiß, unterstützt es noch nicht Speicher-Profiling.
Sie sollten SpeedTrace überprüfen. Wir sind mit der Software zufrieden und sie hilft uns sehr bei der Lösung der Grundursachen meines Problems.
- 1. F # interaktive und Leistungsprofiler
- 2. .net Diagnostics Best Practices?
- 3. "Best" Weg zwischen .NET 1.1 und .NET 3.5
- 4. .NET Garbage Collector und x64 virtueller Speicher
- 5. Versucht, geschützter Speicher-Sql Compact und .NEt
- 6. .net nativen Speicher aus
- 7. Maximaler verfügbarer .NET-Speicher?
- 8. .net macht ArrayList.Clear Speicher frei?
- 9. .net Speicher wird nicht zurückgefordert
- 10. Was sind Best Practices für die Verwendung von lokalem Thread-Speicher in .NET?
- 11. Best Practices bei der Verwendung von Oracle DB und .NET
- 12. Allgemeine Anwendungen und Best Practices für Anwendungsdomänen in .NET?
- 13. SQL Service Broker und .NET Windows Service - Best Practices?
- 14. asp .net Session-Variable Speicher
- 15. -Stream (.NET) Umgang mit Best Practices
- 16. Best Practices zum Signieren von .NET-Assemblys?
- 17. .net Best Practices für Webservices ... SRP?
- 18. Herunterladen und Ausführen einer JAR aus dem Speicher in .NET
- 19. NGen und Gacutil Best Practices
- 20. Best Practice für die Entschlüsselung großer Dateien mit weniger Speicher
- 21. Cassandra Best Practices, wenn ich Speicher json brauchen
- 22. Wie Implementieren von gemeinsamem Speicher in .NET?
- 23. Wird .NET Speicher für die Liste zuweisen?
- 24. Nicht verwalteter Speicher und verwalteter Speicher
- 25. Was ist aktiver Speicher und inaktiver Speicher?
- 26. Rails Caching DB-Abfragen und Best Practices
- 27. Best Practices zum Speichern und Verwenden von Datenrahmen, die für den Speicher zu groß sind?
- 28. Was ist ein guter Leistungsprofiler für iPhone-Spiele, die mit objective-C und XCode erstellt wurden?
- 29. Best Practices: Was ist zu verwenden, .Net-Klasse oder Kurzname?
- 30. Best Practice, um eine Client-Trennung in .NET zu erkennen?
Sie können unsere neue und völlig kostenlose [Nprofiler] (https://www.nprofiler.com/) Community Edition ausprobieren. – Tom