Что такое профилирование и как я могу профилировать свою Java-программу? - PullRequest
5 голосов
/ 12 ноября 2008

Я много слышал о профилировании. О чем это все? Насколько я понимаю, это какое-то измерение производительности, но кто-то может прояснить это более четко, чтобы новичок смог понять идею. Также я использую Eclipse IDE для своей Java-программы. Могу ли я профилировать свою программу с помощью Eclipse IDE? Какие факторы необходимо учитывать при профилировании (я имею в виду лучшие практики)?

Ответы [ 4 ]

6 голосов
/ 12 ноября 2008

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

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

Обычно программы проводят очень много времени (скажем, 90%) в одном месте. К сожалению, найти это место без профилирования невозможно. Догадки часто идут не так, как надо. Поэтому, если вы оптимизируете не в том месте, это совсем не поможет: если общее время, проведенное в этой строке, составляет всего 10%, ваш код будет работать только на 10% быстрее (в лучшем случае!). Однако если вам удастся удалить вызов, который занимает 90% времени, ваша программа будет работать в раз в десять раз .

Это, в двух словах, профилирование.

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

2 голосов
/ 12 ноября 2008

Конрад прав, но профилирование охватывает и другие аспекты вашей программы, такие как потребление памяти.

0 голосов
/ 12 ноября 2008

YourKit является отличным профилировщиком для Java и прекрасно интегрируется с Eclipse. Это определенно стоит денег и, как правило, считается лучшим из доступных профилировщиков Java.

0 голосов
/ 12 ноября 2008

Из того небольшого исследования, которое я провел по профилированию Java с Eclipse, вы можете использовать JProfiler . Хотя я никогда не добивался большего, чем просто установил его и быстро обнюхал.

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