Как я могу отслеживать / профилировать процесс в Windows?

3376
Martin Smith

Иногда, исследуя проблемы SQL Server, я нахожу полезным иметь возможность подключить к нему отладчик Visual Studio и попытаться выяснить, что он делает, посмотрев на стек вызовов (общедоступные символы доступны и часто можно сделать выводы полезными информация из названий методов).

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

Однако это может быть довольно трудоемким и утомительным процессом. Обычно я запускаю интересующий код в цикле, присоединяю отладчик, затем непрерывно прерываю работу и продолжаю, пока не попаду в стек вызовов, который выглядит интересным для исследуемого вопроса. Затем я могу просмотреть код и посмотреть имена вызываемых методов. Это занимает много времени, однако.

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

2

2 ответа на вопрос

3
Maxwell S.

Если я не ошибаюсь, вы, вероятно, ищете Process Monitor (он же procmon). Вы можете получить его с этого сайта Microsoft .

В частности, пункт меню «Сводка стека» содержит такую ​​информацию. Подробнее в разделе PM2-6: Развертывание стека

Как насчет Process Explorer, гораздо более мощного ... http: //technet.microsoft.com/en-us/sysinternals/bb896653 Moab 12 лет назад 1
@Moab - AFAIK Process Explorer может загружать общедоступные символы с сервера символов MS и показывать текущий стек вызовов, но не имеет возможности регистрировать вызовы с течением времени? Martin Smith 12 лет назад 1
@MartinSmith не уверен, к сожалению, я не эксперт в использовании этого программного обеспечения. Moab 12 лет назад 0
2
Martin Smith

Для этого можно использовать профилировщик в более поздних версиях Visual Studio.

Пример вывода

Screenshot

ответ здесь показывает, почему это полезно)

Кроме того, Windows Performance Toolkit является бесплатным и может делать то же самое и многое другое. Хорошую серию видео по этому вопросу можно найти по адресу https://channel9.msdn.com/Search?term=Defrag%20tools%20wpt#ch9Search.