Иногда при исследовании проблем 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