Как сделать профилирование производительности в Visual Studio 2008 "Pro" - PullRequest
6 голосов
/ 21 февраля 2009

Microsoft делает эту часть программного обеспечения под названием «Visual Studio 2008 Professional». Я обнаружил, что не существует профилировщика производительности приложений или чего-то подобного, что делает его не таким «профессиональным» для меня.

Если Microsoft не включает профилировщик, каковы ваши сторонние варианты профилирования времени для Visual Studio 2008? Бесплатно было бы предпочтительнее, так как это для студенческих целей: P

Ответы [ 8 ]

6 голосов
/ 21 февраля 2009

Есть несколько бесплатных профилировщиков, не такие полные или полированные, как коммерческие, но они могут определенно помочь:

Eqatec - Это было разработано для Windows CE, но отлично работает для обычных приложений.

Soft Prodigy Profile Sharp - На самом деле это проект с открытым исходным кодом, написанный на c #, поэтому вы можете поработать с ним, если хотите.

4 голосов
/ 21 февраля 2009

Лично я использую профилировщик Red Gate.

Другие клянутся JetBrains.

Похоже, что это варианты, и между ними не так много.

3 голосов
/ 21 февраля 2009

Я использую JetBrains dotTrace profiler . Это коммерческий профайлер. (Полное раскрытие: я получаю бесплатную лицензию в качестве MVP. Она имеет оказалась очень полезной.)

Существует также бесплатная CLR Profiler для .NET 2.0 и статья, объясняющая, как ее использовать .

2 голосов
/ 17 октября 2009

Загрузите автономный профилировщик командной строки VS 2008 http://www.microsoft.com/downloads/details.aspx?familyid=fd02c7d6-5306-41f2-a1be-b7dcb74c9c0b&displaylang=en

2 голосов
/ 21 февраля 2009

Я использую Team System Edition . Это идет с профилировщиком, который довольно хорош. Есть и другие варианты:

Надеюсь, это поможет. Примечание: ни один из них не является бесплатным.

Счастливое профилирование:)

1 голос
/ 21 февраля 2009

Профилировщик RedGate ANTS не так уж дорог и выполняет свою работу.

0 голосов
/ 23 февраля 2009

такой же ответ как:

Отредактировано: Вы спросили, какие у вас были варианты. Если ваше сердце настроено на профилирование, тогда ищите профилировщик.

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

Затраты времени на инструкцию - это количество времени, которое будет сэкономлено, если команда может быть удалена, и хорошей оценкой будет доля выборок стека вызовов, содержащих ее. Вам не нужно оценивать эту долю с высокой точностью. Если инструкция на 5 из 10 образцов, ее стоимость, вероятно, находится в диапазоне от 45% до 55%. Неважно - если бы вы могли от него избавиться, вы бы сэкономили его стоимость.

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

Я несколько упрощаю, потому что часто полезно изучить больше информации о состоянии, чем просто стек вызовов, чтобы увидеть, действительно ли какая-то выполняемая работа действительно необходима. Но я надеюсь, что дело сделано.

Люди выражают сомнение в том, что он может работать при наличии рекурсии или работать над большими программами. Небольшая мысль (и эксперименты) показывает, что эти возражения не выдерживают критики.

0 голосов
/ 21 февраля 2009

Я использую dotTrace JetBrain, и он работает довольно хорошо.

...