Узкое место в производительности - использование Visual Studio - PullRequest
11 голосов
/ 16 июля 2011

Я ищу способ найти узкие места в решении (множество проектов).

Допустим, у меня есть ОГРОМНАЯ программа (1000 методов), и я хочу повысить производительность, находя методы, которые вызываются много (на самом деле используются во время выполнения), и оптимизировать их.сложная проблема, которая написана на C ++, C #, CLI / C ++.(Я могу скомпилировать все это в отладке и иметь файлы .pdb)
Итак, я ищу какой-то анализатор, который скажет мне, сколько процессорного времени использует каждый метод./ addon / feature можно использовать в Visual Studio для получения этой информации?
Я хочу иметь возможность запустить программу в течение нескольких минут, а затем проанализировать использование процессора методом.Или даже лучше - количество процессоров / количество вызовов.
Было бы еще лучше, если бы я мог сортировать по пространству имен или dll / package / project.

Ответы [ 4 ]

4 голосов
/ 16 июля 2011

В более дорогих версиях Visual Studio должен быть встроен профилировщик: см. этот поток.

Однако есть и другие методы для профилирования, этот вопрос много раз освещался в stackoverflow., здесь например.

2 голосов
/ 16 июля 2011

По одной из ссылок Кристиана Гольца я нашел программу, которая может делать то, что я хочу, она профилирует как управляемый, так и неуправляемый код:

AQTime Pro

1 голос
/ 16 июля 2011

Этот метод низкотехнологичный, но отлично работает.

Я также работаю в огромном приложении, и когда у нас возникают проблемы с производительностью, он быстро их находит.

1 голос
/ 16 июля 2011

У меня был хороший опыт с продуктом DotTrace от JetBrains. Не уверен, что у него есть интеграция с IDE или все функции, которые вы ищете, но он определенно выполняет свою работу.

...