2011-11-30 4 views
5

Szukam prostego sposobu wielokrotnego użytku, aby zarejestrować czas potrzebny do wykonania metody w moim projekcie .NET (MVC) i nagrać go za pomocą NLog i zastanawiałeś się, czy ktoś ma jakieś sugestie, jak to wdrożyć?Efektywny sposób na rejestrowanie czasu potrzebnego do wykonania metody w C#

Aby zachować czysty kod i czytelność, tak naprawdę nie chcę w razie potrzeby integrować go z moim kodem.

Jeśli ktoś ma jakieś sugestie, chciałbym je usłyszeć.

+0

Niekoniecznie do rejestrowania ... ale profiler EQATEC jest lepszy dla, dobrze, profilowania. Jestem pewien, że istnieją inne podobne narzędzia. Działa to przez przepisanie złożenia dla wejścia/wyjścia metody dla informacji o taktowaniu. Nie najmniej inwazyjne ... –

Odpowiedz

3

Czasami warto spojrzeć na to:

http://code.google.com/p/mvc-mini-profiler/

Napisane przez dobrych ludzi przy wymianie stosów.

+1

jako zastrzeżenie: aby zmienić metodę dodawania niewielkiego fragmentu kodu. Można to * zrobić * poprzez AOP, ale jesteśmy zdania, że: wydajność jest cechą; można napisać kod obsługujący funkcje –

10

Zastosowanie Stopwatch klasa

Stopwatch time = Stopwatch.StartNew(); 
time.Stop(); 
var milliseconds= time.ElapsedMilliseconds; 
+2

Dzięki. Właśnie to robię obecnie. Szukam sposobu realizacji tego bez pisania kodu w metodzie. – Nick

5

Skoro wspomniałeś chcesz uniknąć zmiany istniejącego kodu, jest to przypadek, w którym AOP (aspekt zorientowane na programowanie) jest przydatna

Oto blogu, który opisuje dokładnie ten scenariusz przy użyciu PostSharp: http://theburningmonk.com/2010/03/aop-method-execution-time-watcher-with-postsharp/

+0

w naszym przypadku publikujemy również te wskaźniki czasu w usłudze Amazon CloudWatch, abyśmy mieli wgląd w rzeczywistość w czasie rzeczywistym i mogli ustawiać alarmy dotyczące tych danych, abyśmy otrzymywali powiadomienia, np. O problemach z opóźnieniami i Szybko reaguj (http://theburningmonk.com/2012/03/recording-for-my-webinar-with-postsharp/) – theburningmonk

Powiązane problemy