Ранее я использовал 2 инструмента профилирования - профилировщик ANTS от RedGate и встроенный профилировщик в Visual Studio Team System.
Прошло некоторое время с тех пор, как я использовал профилировщик RedGate (http://www.red -gate.com / products / ants_profiler / index.htm ), хотя я использовал встроенный в Visual Studio 2008 довольно недавно.
При этом я почувствовал, что продукт RedGate стал более интуитивно понятным в использовании. Когда я использовал продукт RedGate, меня разочаровало то, что я не мог поручить профилировщику только профилировать мой код, начиная с определенной точки - у меня был скачок в производительности, которого нельзя было достичь, пока не было достаточного количества кода. уже выполнил и потому испортил мои результаты. Возможно, они добавили эту функцию с тех пор.
Встроенная версия для Visual Studio доступна только в версиях продукта самого высокого уровня. Кто-то исправит меня, если я ошибаюсь, но я не думаю, что даже в «Профессиональной» версии есть профилировщик. В настоящее время я использую Team System Developer Edition, в которой есть инструменты анализа кода.
Одна из версий VS делает то, что вы можете приостановить профилирование и даже запустить приложение с паузой профилирования, чтобы вы могли действительно сосредоточиться на производительности чего-то очень специфического. Это может быть чрезвычайно полезно, когда вы пытаетесь понять результаты анализа.
РЕДАКТИРОВАТЬ: Оба инструмента покажут вам использование памяти, а также количество вызовов определенного метода и сколько времени было потрачено на каждый метод. Насколько я знаю, они не показывают вам использование процессора в любой момент времени. Однако, вероятно, существует сильная корреляция между использованием процессора и количеством времени, затрачиваемым в данном блоке кода.
Если вы можете последовательно дублировать пики ЦП, вызывая определенные действия в APP, то я бы попробовал и взял в свои руки профилировщик VS, запустил приложение с паузой профилирования, включил профилирование прямо перед тем, как обычно результаты в пике, и изучите эти результаты.
Это предполагает, конечно, что у вас есть какое-то детерминированное поведение для воссоздания пиков. Если нет ... вы могли бы рассмотреть резьбовые процессы или сборку мусора кандидатом на снижение производительности.