Ограничение профилирования в Visual VM - PullRequest
3 голосов
/ 21 апреля 2009

Я пробую программу VisualVM, которая поставляется с новыми JDK. Я делаю профилирование и пытаюсь профилировать процессор только для методов в конкретном пакете.

Я добавил следующее в «Классы только для профиля»:

jig.*

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

Ответы [ 3 ]

2 голосов
/ 22 сентября 2009

Единственный способ воспроизвести вашу проблему - это оставить флажок «Профилировать новые Runnables». Когда я оставляю это отмеченным, профилировщик выбирает код, запущенный как новые потоки, даже если этот код не соответствует критериям фильтрации. Я думаю, это неясная функциональность.

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

2 голосов
/ 02 июля 2013

На самом деле есть открытая ошибка об этом:

https://java.net/jira/browse/VISUALVM-546

Я полностью согласен с отправителем (и с вашим разочарованием по поводу "странного" поведения VisualVM). Даже с проверкой «Profile new Runnables», по моему мнению, фильтр должен соблюдаться.

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

Я приглашаю всех проголосовать за внимание разработчиков VisualVM.

0 голосов
/ 03 сентября 2009

Вы можете ввести критерий фильтрации в текстовое поле в нижней части списка «Результаты профилирования», который должен помочь.

...