Как выполнить профилирование производительности в Visual Studio 2008 " Pro"

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

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

8 ответов


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

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

кажется, это варианты, и между ними не так много.


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

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

Мягкий Профиль Prodigy Sharp - это на самом деле проект с открытым исходным кодом, написанный на c#, поэтому вы можете возиться с ним, если хотите.


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

есть также бесплатный профилировщик CLR для .NET 2.0 и статья, объясняющая, как ее использовать.


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

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

счастливый профилирования :)


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


Redgate муравьи профилировщик не так дорого, и делает свою работу.


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


ответ:

re-edited: вы спросили, каковы ваши варианты. Если ваше сердце настроено на профилирование, найдите профилировщика.

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

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

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

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

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