Какими преимуществами обладает коммерческий профилировщик Java над бесплатными, например, тот в Netbeans? - PullRequest
9 голосов
/ 29 января 2009

Иногда мне приходится выполнять какую-то работу по профилированию Java-кода, и я хотел бы знать, почему мой босс должен заниматься поиском в коммерческом профилировщике, а не просто использовать его в Netbeans или JConsole?

Какими бы были черты убийства, которые бы оправдывали инвестиции?

Ответы [ 9 ]

11 голосов
/ 29 января 2009

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

Кроме того, JProfiler прекрасно интегрируется с IntelliJ IDEA. Я должен использовать NetBeans, чтобы использовать профилировщик NetBeans, что неудобно, поскольку мне приходится вручную настраивать проект произвольной формы в соответствии с макетом моего проекта.

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

8 голосов
/ 25 февраля 2009

У меня есть опыт использования профилировщика NetBeans и JProbe. Для профилирования производительности я нашел Netbeans весьма полезным, но где JProbe лучше для профилирования памяти.

JProbe имеет превосходные инструменты для сравнения снимков кучи и поиска основной причины утечки памяти. Например, в JProbe вы можете визуально просматривать кучи shapshots в виде графика, выбирать узлы для исследования, а затем удалять ссылки, чтобы посмотреть, можно ли затем собрать этот экземпляр.

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

Если вы уже используете Netbeans, запуск профилировщика будет легким (если только вы не используете проект на основе Maven ... вздох).

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

Код профиля I не ОГРОМНЫЙ, поэтому я не могу сказать, является ли время, потраченное на профилирование, основным фактором.

Ответ очень субъективен и полностью зависит от ваших потребностей. На что посмотреть:

1) простота использования в вашей среде (в случае NetBeans вполне вероятно, что встроенный профилировщик наиболее прост.

2) время, потраченное на запуск prfiler, фактически дает вам полезные результаты

3) это профилировщик выборки или трассировки? (Обзор здесь: http://docs.hp.com/en/5992-0757/ch05s01.html

4) Можете ли вы просматривать результаты в режиме реального времени или вам нужно дождаться окончания профилирования?

Вот ссылка на обсуждение slashdot по профилировщикам Java: http://ask.slashdot.org/article.pl?sid=06/06/30/0053237

2 голосов
/ 01 марта 2009

Я не использовал профилировщик Netbeans, но пробовал JProfiler, Yourkit и JProbe. Я нашел Yourkit немного лучше (в основном, с точки зрения удобства использования). Вот некоторые из полезных функций: (вы можете проверить, доступен ли он в Netbeans)

  • J2EE Profiling (например, он показывает, сколько времени занял SQL-запрос).
  • Сравнение снимков и аннотации
  • Детектор тупика
  • Исключительная телеметрия

Более подробную информацию вы можете найти на их сайте .

1 голос
/ 02 марта 2009

По моему опыту, профилировщик YourKit наиболее полезен. Небольшие юзабилити-вещи действительно имеют значение, но также они наиболее полны и содержат:

  • наиболее полные и полезные снимки памяти (работающие также с 1 ГБ + кучи) с подробным представлением объекта и примитивными данными для каждого отдельного объекта. (например, в hashmap вы можете видеть, распределены ли объекты равномерно или большинство из них хранятся в одном и том же сегменте!) Эта деталь снимков памяти и ее простота в использовании - моя главная причина для вашего комплекта.
  • очень небольшие накладные расходы (гораздо меньше, чем у многих других профилировщиков, которые я использовал)
  • сравнение снимков
  • J2EE профилирование
  • детектор взаимоблокировок, статус блокировки (я думаю, что по-прежнему отсутствует java.concurrent.locks, бут для синхронизированных это здорово)

Помимо прочего, он также постоянно совершенствуется, так что, кто знает, что нас ждет в будущем :)

1 голос
/ 01 марта 2009

Если вы используете Tomcat, вы можете рассмотреть lambdaprobe

http://www.lambdaprobe.org/

(Это бесплатно)

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

С полностью независимым профилировщиком намного проще интегрировать его с другими приложениями в вашем наборе инструментов. Например, допустим, вы хотите запустить профилировщик как часть процесса сборки (скажем, один раз за ночь). Нечто подобное JProfiler легко интегрируется с ANT, тогда как встроенные в IDE профилировщики могут или не могут. Если у вас есть отдельный компьютер для сборки, установка локальной копии профилировщика имеет смысл, но установка целой IDE просто для получения доступа к одному компоненту - нет.

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

Я бы сказал, что готов к использованию и больше статистики производительности. В прошлом году мне дали работу по профилированию, когда я проходил стажировку в многонациональной компании. Я использовал профилировщик InfraRED, который использует аспектно-ориентированный API Java (работает как с Aspectwerkz, так и с AspectJ). Но мне пришлось расширить профилировщик, чтобы получить то, что хотел мой менеджер. Кроме того, статистика производительности, предоставленная профилировщиком, была ограничена.

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

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

0 голосов
/ 29 января 2009

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

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