Профилирование .net многопоточного приложения (Visual Studio 2008) - PullRequest
4 голосов
/ 08 марта 2012

Я недавно установил (eval of) Visual Studio 2008 TS, чтобы иметь возможность выполнить профилирование приложения.Теперь я узнаю лишь то, как мало я знаю о (реальном) профилировании, когда приложения более сложны, чем «Hello World».

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

Теперь моя проблема: как я могу сделать это прощеисследовать?Есть только один поток, который меня интересует (основной, выполняющий всю работу), остальные просто ждут определенных вещей и полностью ограничены временем работы моего основного потока.(Они находятся в одних и тех же модулях и иногда вызывают одни и те же функции.)

Есть ли способ настроить профилирование?Любой способ обработать результаты, чтобы сделать их более значимыми для моего сценария?Любое другое решение, кроме VS 2008 (например, 2010 или внешний профилировщик)?

Я сейчас использую инструментарий (дал мне лучшие результаты, чем выборка, на мой взгляд) с C # под .net 3.5.

1 Ответ

5 голосов
/ 24 апреля 2012

Профилировщик производительности ANTS от Red Gate может фильтровать результаты профилирования по потокам.

В документации по Работа с деревом вызовов (в частности, в разделе «Изменение параметров отображения дерева вызовов») показан снимок экрана с доступом к фильтру.

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