Работает ли профилирование процессора VisualVM на Mac? - PullRequest
3 голосов
/ 04 ноября 2010

Я пытаюсь использовать VisualVM для профилирования на Mac с 64-битной виртуальной машиной, но безуспешно.

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

В большинстве случаев это просто сообщение «Информация о профилировании пока недоступна». Один раз, когда это сработало, было найдено 4 вызова метода, всего. Миллионы произошли бы за это время.

Снимок при выходе из приложения показывает некоторые системные потоки, но не мой код.

Я не изменил ни одну из настроек по умолчанию. Я проверил, что это не исключает мой код.

Работает ли VisualVM на Mac для профилирования 64-битной JVM?

Я пробовал jvisualvm из последней версии JDK и чуть более позднюю версию из java.net.

Java-версия "1.6.0_22" Java (TM) SE Runtime Environment (сборка 1.6.0_22-b04-307-10M3261) Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 17.1-b03-307, смешанный режим)

Версия системы: Mac OS X 10.6.4 (10F569)

Есть мысли? Это работает для вас?

Спасибо!

1 Ответ

2 голосов
/ 05 ноября 2010

Ошибка пилота, своего рода.

Я тестировал тестовое приложение, которое создало поток, и включило цикл в методе запуска потока.Он сделал тесный цикл для использования cpu, а также sleep () и println ().

Но проблема в том, что это было ВСЕ в одном методе.Похоже, что VisualVM отслеживает методы только при выходе из них.Итак, поскольку у меня был один метод looping, он никогда не выходил из метода и никогда не генерировал событие отслеживания.

Я переместил код из метода run () в другой метод, неоднократно вызываемый из run (), итеперь это работает.

...