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

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

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

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

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

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

решение1

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

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

введите описание изображения здесь

решение2

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

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

Скриншот

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

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

Связанный контент