Как быстро получить трассировку потоков из управляемого стека с использованием большого количества процессоров - PullRequest
4 голосов
/ 03 декабря 2011

При диагностике высокой проблемы с ЦП, первый вопрос, который приходит на ум, это какой поток (ы) использует весь ЦП и что он делает (в терминах управляемого кода)? Чтобы понять это, необходимо установить Process Explorer, например, чтобы найти нить, нарушившую работу. Затем нужно захватить дамп процесса, загрузить его в нечто вроде windbg и выяснить, что делают потоки - выяснить трассировку управляемого стека каждого потока.

Этот процесс занимает много времени. Существует ли инструмент (бесплатный или платный) или надежный код, который можно написать, который мог бы сделать все это за считанные секунды (нажатие кнопки). Конечным результатом, который я хотел бы видеть, является список потоков, упорядоченных по загрузке ЦП, и текущий метод, в котором он находится, с возможностью детализации для просмотра всей трассировки стека. По сути, то же самое вы увидите в Process Explorer, за исключением управляемого кода.

Это должно работать для .NET 4.0.

1 Ответ

0 голосов
/ 03 декабря 2011

Вы можете создать свой собственный мини-профилировщик, например http://samsaffron.com/archive/2009/11/11/Diagnosing+runaway+CPU+in+a+Net+production+application

Извлечь Диагностика разгона ЦП в производственном приложении .Net

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...