Was ist der beste Weg, um Leistungsprobleme zu beheben?

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 Dienstprogrammmethoden des SDK des Host-Programms ab. Mein Plug-In hat viele rekursive Funktionen, da ich viel in einer Baumstruktur lese und schreibe. Außerdem habe ich viele Ereignisabonnements zwischen meinem Plug-In und der Host-Anwendung sowie Ereignisabonnements zwischen Klassen in meinem Plug-In.

Wie kann ich herausfinden, was so lange dauert, bis eine Aufgabe erledigt ist? Ich kann das normale Debuggen mit Haltepunkten nicht verwenden, da es nicht funktioniert, sondern nur zu langsam ist. Ich habe eine statische "LogWriter" -Klasse eingerichtet, auf die ich in all meinen Klassen verweisen kann, damit ich aus meinem Code Zeilen mit Zeitstempel in eine Protokolldatei schreiben kann. Gibt es eine andere Art und Weise? Bewahrt Visual Studio eine Art Zeitstempel-Protokoll auf, das ich stattdessen verwenden könnte? Gibt es eine Möglichkeit, den Aufrufstapel anzuzeigen, nachdem die Anwendung geschlossen wurde?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage