Різниця між вибіркою та профілюванням у jVisualVM


158

VisualVM має дві окремі вкладки для відбору проб та профілювання. Яка різниця між вибіркою та профілюванням у VisualVM?

Відповіді:


182

Samplingозначає взяти багато відвалів потоку та аналізувати сліди стека. Зазвичай це швидше, не вимагає змін у вашому байт-коді (що може порушити його), але також є менш точним.

Profilingозначає інструментувати ваші класи та методи, тому вони "звітують" щоразу, коли вони запущені. Це точніше, оскільки він підраховує кожне виклик інструментального методу, а не лише тих, що потрапляють під час виконання дампа. Однак інструментарій означає, що байт-код ваших класів змінено, і це може порушити вашу програму. Власне, з цієї причини використання профілювання на великих серверах прикладних програм (наприклад, JBoss або WebLogic) часто призводить до вмирання або зависання.


2
Чи означало б це, що профілювання є більш точним, ніж вибіркове, але це займе більше ресурсів?
Параг

10
Я виявив, що вибірки є більш ніж достатньо точними щоразу, коли я використовую її для визначення точних методів. Я особисто ніколи не використовую профілювання.
Маркес
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.