Что такое профилирование? - PullRequest
8 голосов
/ 06 марта 2009

Я новичок в этом и пытаюсь учиться.

  • Что такое профилирование?
  • Какие существуют бесплатные инструменты для профилирования .NET, Java EE?
  • Может ли Javascript быть профилирован?
  • Если да, то с помощью какого инструмента?
  • И, наконец, как работают эти профилировщики?

Ответы [ 8 ]

12 голосов
/ 06 марта 2009

Профилирование измеряет время выполнения различных частей кода. Javascript можно профилировать с помощью firebug: http://getfirebug.com/js.html

5 голосов
/ 06 марта 2009

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

4 голосов
/ 06 марта 2009

Думайте о профилировщиках как об отладчиках ошибок продолжительности выполнения.

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

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

3 голосов
/ 06 марта 2009

Вот несколько профилей .NET, которые вы можете попробовать (бесплатно):

Я не большой поклонник этого. Я бы порекомендовал один из коммерческих продуктов для получения наилучших результатов:

Кроме этого, посмотрите на сообщения в блоге Брэда Адамса Профилировщики для CLR и .NET Application Profiler .

Мне лично нравится dotTrace .

3 голосов
/ 06 марта 2009

Обычно вы используете профилировщик следующим образом:

  1. Запустите профилировщик, запустите ваше приложение, используя профилировщик.
  2. Используйте ваше приложение в течение некоторого времени или только те функции в вашем приложении, которые вы определили как узкие места и хотели бы оптимизировать.
  3. Как только ваше приложение закрыто (или иногда даже до этого), профилировщик может представить вам разбивку времени выполнения для каждой функции. Некоторые из них также позволят вам получить разбивку времени выполнения для каждой строки или функции в одной из этих функций, чтобы вы могли увидеть, где процессор потратил больше времени, используя нисходящий подход.
  4. Обычно выполнение некоторых функций в вашем приложении занимает необычно много времени. Изучив результаты профилирования, вы сможете определить их и устранить проблемы с производительностью.
1 голос
/ 08 марта 2009

Профилирование - это методика измерения времени выполнения и количества вызовов процедур.

Однако это не единственный или даже не лучший способ найти вещи, которые приводят к потере времени в вашем коде. Смотри здесь.


Для другой статьи Википедии, попробуйте http://en.wikipedia.org/wiki/Performance_tuning#Bottlenecks

Для простых инструкций попробуйте http://www.wikihow.com/Optimize-Your-Program%27s-Performance

0 голосов
/ 29 декабря 2012

Профилирование - это мера времени выполнения на уровне метода (функциональная статистика), а также сбор информации во время выполнения, такой как потребление памяти, процессора, потоков и количества классов (нефункциональная статистика), загруженных за период время работы приложения. Он подпадает под анализ производительности (сбор функциональной и нефункциональной статистики) рассматриваемого приложения, запускаемого одним пользователем. JConsole - это один из встроенных инструментов для профилирования приложений Java.

0 голосов
/ 07 марта 2009

Википедия говорит:

В программной инженерии анализ производительности, более широко известный сегодня как профилирование, представляет собой исследование поведения программы с использованием информации, собранной при выполнении программы

Продолжить чтение здесь http://en.wikipedia.org/wiki/Performance_analysis.

Итак, об инструменте javascript Firebug (http://getfirebug.com/index.html#install) - отличный вариант.

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