Как можно найти медленные шаги умеренно быстрого процесса? - PullRequest
0 голосов
/ 09 июля 2011

У меня есть приложение Windows Forms.Когда пользователь выбирает элемент для просмотра подробной информации, для загрузки подробного экрана требуется более 4 секунд (в среднем это 2,5).Кажется, что он слишком длинный ... и все же он не ТАК длинный.

Проблема, с которой я столкнулся, заключается в том, что трудно отследить, потому что это длиннее, чем должно быть, но не слишком долго.Другими словами, если бы это заняло 30 секунд, я мог бы легко пройти и найти шаги, которые занимали это время.Но через 4 секунды вы сталкиваетесь с такими вещами, как отладчик замедляет его, поэтому вы точно не знаете, нашли ли вы медленный шаг.

Как я могу отследить медленные шаги за умеренную«быстрый» процесс?

Ответы [ 3 ]

2 голосов
/ 09 июля 2011

Вы можете использовать профилировщик , чтобы сообщить вам, где проводится время.

1 голос
/ 09 июля 2011

Быстрый и грязный способ найти узкое место - запустить медленную операцию, а затем сразу же «Break All» - нажав кнопку «Break All» или клавиши Ctrl + Alt + Break.

Когда вы делаете это несколько раз, вы часто обнаруживаете, что перерывы программы в одном и том же месте несколько раз, что должно дать представление о том, что все время пережевывается.

1 голос
/ 09 июля 2011

Просто запишите метки времени основных шагов вашего процесса в лог-файл или в отдельное окно. Что-то подобное подойдет:

string times = "";
times += string.Format("step 1: {0}\n", DateTime.Now);

// ...

times += string.Format("step 2: {0}\n", DateTime.Now);

// ...

times += string.Format("step 3: {0}\n", DateTime.Now);

// now output the string to a file or to a different window (or even examine it in the debugger)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...