Методические точки останова могут значительно замедлить отладку
При добавлении точки останова в строку объявления метода (в Intellij IDEA или Android Studio) появляется всплывающее окно:
Контрольные точки метода могут значительно замедлить отладку
Почему это резко замедляет отладку, мой вопрос? Чем отличается точка останова в первой строке функции?
Спасибо!
Ответы
Ответ 1
Я немного огляделся и увидел этот пост в Intellij Documetation:
Точка останова метода
Контрольные точки метода действуют в ответ на ввод программы или выход из определенного метода. Они позволяют настроить таргетинг на ваши сеансы отладки методом, который вы хотите исследовать, а не по номеру строки. Методические точки останова позволяют следить за потоком программы на уровне метода, а также проверять условия входа и выхода. Обратите внимание, что использование меток breakpoints может замедлить приложение, которое вы отлаживаете.
Я предполагаю, что он останавливает программу до того, как она войдет в метод, чтобы вы могли оценить параметры и т.д. перед входом в метод.
Причина, по которой он резко замедляется, - это то, что я могу собрать, потому что это все, которое я мог бы найти на методах breakpoints в документации Intellij), что он должен:
позволяет следить за потоком программы на уровне метода, а также проверять условия входа и выхода
и я полагаю, что это займет намного больше времени, чем просто остановить выполнение программы
Ответ 2
Мое понимание заключается в том, что код должен выполняться интерпретируемо (вместо использования JIT для предварительной компиляции?), когда точка останова устанавливается на запись метода.
Если вы установите точку останова в первой строке метода, я подозреваю, что индекс номера строки в коде можно использовать для простой замены кода операции перебора для исходного кода операции, поэтому приложение работает на полной скорости. (который по-прежнему кажется мне довольно медленным при отладке;)
Ответ 3
От IntelliJ Team есть простое объяснение: "Точки останова метода сильно замедляют отладчик из-за дизайна JVM, их дорого оценивать"
https://intellij-support.jetbrains.com/hc/en-us/articles/206544799-Java-slow-performance-or-hangups-when-starting-debugger-and-stepping