Jaki jest najlepszy sposób pomiaru czasu wykonania funkcji? [duplikat]
To pytanie ma już odpowiedź tutaj:
Oczywiście mogę zrobić i DateTime.Now.After
- DateTime.Now.Before
ale musi być coś bardziej wyrafinowanego.
4 answers
System.Środowisko.TickCount i system .Diagnostyka.Klasa Stopwatch to dwie klasy, które działają dobrze dla lepszej rozdzielczości i prostego użytkowania.
Zobacz Też:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:25:02
Zdecydowanie radzę rzucić okiem na System.Diagnostics.Stopwatch
A kiedy rozejrzałem się po więcej o stoperze znalazłem tę stronę;
Pojawiła się inna możliwość
Proces.TotalProcessorTime
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-19 13:23:04
Użyj profilera
Twoje podejście będzie jednak działać, ale jeśli szukasz bardziej wyrafinowanych podejść. Sugerowałbym użycie C # Profiler.
Ich zalety to:
- możesz nawet uzyskać poziom instrukcji rozstanie
- nie wymaga zmian w bazie kodu
- Oprzyrządowanie zazwyczaj ma bardzo mniejsze koszty, dlatego można uzyskać bardzo dokładne wyniki.
Istnieje wiele dostępnych open-source jak również.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-19 13:18:02
Tickcount jest dobry, jednak proponuję uruchomić go 100 lub 1000 razy i obliczyć średnią. Nie tylko czyni go bardziej mierzalnym - w przypadku naprawdę szybkich/krótkich funkcji, ale pomaga radzić sobie z pewnymi jednorazowymi efektami spowodowanymi przez obciążenie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-19 13:16:19