Ich schreibe ein Plug-in für ein anderes Programm in C# .NET und habe Leistungsprobleme, bei denen Befehle viel länger dauern als ich. Das Plug-in reagiert auf Ereignisse im Host-Programm und hängt auch von den Utility-Methoden des Host-Programm-SDK ab. Mein Plug-In hat viele rekursive Funktionen, weil ich viel in einer Baumstruktur lese und schreibe. Außerdem habe ich eine Menge von Ereignisabonnements zwischen meinem Plugin und der Host-Anwendung sowie Ereignisabonnements zwischen den Klassen in meinem Plug-in.Was ist der beste Weg, Performance-Probleme zu debuggen?
Wie kann ich herausfinden, was für eine Aufgabe so lange dauert? Ich kann das Debugging im regulären Breakpoint-Stil nicht verwenden, weil es nicht so funktioniert, dass es zu langsam ist. Ich habe eine statische "LogWriter" -Klasse eingerichtet, die ich aus allen meinen Klassen referenzieren kann, damit ich aus meinem Code mit Zeitstempel versehene Zeilen in eine Protokolldatei schreiben kann. Gibt es eine andere Art und Weise? Behält Visual Studio eine Art von Protokoll mit Zeitstempel bei, das ich stattdessen verwenden könnte? Gibt es eine Möglichkeit, die Aufrufliste nach dem Schließen der Anwendung anzuzeigen?
Red Gate hat sicher gute Software machen. Ihr ANTS Performance Profiler ist meiner Meinung nach einer der besten. Ich glaube, dass Sie eine Testversion herunterladen können. Die meisten Leute, die später die echte Version kaufen, werden also gewarnt :). – bastijn
Well Microsoft Profiler ist auch gut, aber es ist nur in teuren VS Pack enthält. – arbiter
Daumen hoch für ANTS von mir auch beschlossen, einen großen Speicherverlust für mich –