Можно ли выполнять профилирование процессора и памяти одновременно в jvisualvm? - PullRequest
1 голос
/ 05 апреля 2011

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

Я много читал о jvisualvm, и немного поиграл с ним. Однако он выглядит так, как будто вы выбираете процессор или профилирование памяти, в то время как эта статья от Javalobby содержит интересную цитату, в которой автор говорит:

Я понимаю, что профилирование процессора и памяти могло выполняться одновременно, но для этой статьи я хотел разделить их.

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011

Невозможно выполнить профилирование процессора и памяти вместе, но вы можете очень легко переключаться между процессором и памятью, особенно при использовании вкладки «Sampler». Для вашего случая я бы начал с простого мониторинга. Глядя на графики, вы сможете определить, есть ли у вас проблемы с памятью или нет. Если у вас есть проблема с памятью, я сначала попытался бы ее исправить, и это переключило бы ваше внимание на профилирование процессора.

0 голосов
/ 05 апреля 2011

Я считаю, что профилировщики, как правило, недооценивают стоимость выделения объектов, поэтому я обычно включаю профилирование памяти с помощью профилирования процессора, так как считаю, что это дает более реалистичный результат профилирования процессора.(Даже если я не смотрю отчет о профилировании памяти)

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

Кстати: я использую YourKit, но я не думаю, что VisualVM сильно отличается в этом отношении.

...