VisualVM имеет две отдельные вкладки для выборки и профилирования. В чем разница между выборкой и профилированием в VisualVM?
Разница между выборкой и профилированием в jVisualVM
Ответ 1
Sampling
означает принятие множества дампов потоков и анализ трассировок стека.
Это, как правило, быстрее, не требует изменений времени исполнения в вашем байткоде (что может сломать его), но также менее точно.
Profiling
означает инструменты для ваших классов и методов, поэтому они "сообщают" всякий раз, когда они запускаются. Это более точно, поскольку он подсчитывает каждый вызов инструментального метода, а не только тех, которые были пойманы, когда дамп сделан. Однако инструментарий означает, что байт-код ваших классов изменяется, и это может нарушить вашу программу. Фактически, по этой причине использование профилирования на больших серверах приложений (например, JBoss или WebLogic) часто приводит к смерти или зависанию.