Jaki jest najlepszy sposób debugowania problemów z wydajnością?

Piszę wtyczkę do innego programu w C # .NET i mam problemy z wydajnością, gdzie polecenia zabierają dużo więcej czasu niż ja. Wtyczka reaguje na zdarzenia w programie hosta, a także zależy od metod narzędzi SDK programu hosta. Moja wtyczka ma wiele funkcji rekurencyjnych, ponieważ dużo czytam i zapisuję w strukturze drzewa. Dodatkowo mam wiele subskrypcji zdarzeń między moją wtyczką a aplikacją hosta, a także subskrypcje zdarzeń między klasami w mojej wtyczce.

Jak mogę dowiedzieć się, co tak długo trwa, zanim zadanie zostanie wykonane? Nie mogę używać zwykłego debugowania w stylu punktów przerwania, ponieważ nie jest tak, że nie działa, po prostu jest zbyt wolny. Skonfigurowałem statyczną klasę „LogWriter”, do której mogę się odwoływać ze wszystkich moich klas, co pozwoli mi na zapisywanie w pliku logu z mojego kodu linii ze znacznikami czasu. Czy jest inny sposób? Czy studio wizualne zachowuje jakiś rodzaj znacznika czasu, którego mogę użyć zamiast tego? Czy jest jakiś sposób, aby wyświetlić stos wywołań po zamknięciu aplikacji?

questionAnswers(8)

yourAnswerToTheQuestion