Методические точки останова могут значительно замедлить отладку
При добавлении точки останова в строку объявления метода (в Intellij IDEA или Android Studio) появляется всплывающее окно:
Контрольные точки метода могут значительно замедлить отладку
Почему это резко замедляет отладку, мой вопрос? Чем отличается точка останова в первой строке функции?
ОТВЕТЫ
Ответ 1
Я немного огляделся и увидел этот пост в Intellij Documetation:
Точка останова метода
Контрольные точки метода действуют в ответ на ввод программы или выход из определенного метода. Они позволяют настроить таргетинг на ваши сеансы отладки методом, который вы хотите исследовать, а не по номеру строки. Методические точки останова позволяют следить за потоком программы на уровне метода, а также проверять условия входа и выхода. Обратите внимание, что использование меток breakpoints может замедлить приложение, которое вы отлаживаете.
Я предполагаю, что он останавливает программу до того, как она войдет в метод, чтобы вы могли оценить параметры и т.д. перед входом в метод.
позволяет следить за потоком программы на уровне метода, а также проверять условия входа и выхода
и я полагаю, что это займет намного больше времени, чем просто остановить выполнение программы
Ответ 2
Мое понимание заключается в том, что код должен выполняться интерпретируемо (вместо использования JIT для предварительной компиляции?), когда точка останова устанавливается на запись метода.
Если вы установите точку останова в первой строке метода, я подозреваю, что индекс номера строки в коде можно использовать для простой замены кода операции перебора для исходного кода операции, поэтому приложение работает на полной скорости. (который по-прежнему кажется мне довольно медленным при отладке;)
Ответ 3
От IntelliJ Team есть простое объяснение: «Точки останова метода сильно замедляют отладчик из-за дизайна JVM, их дорого оценивать»
Method breakpoints may dramatically slow down debugging
Whenever adding a breakpoint to the line of a method declaration (in Intellij IDEA or Android Studio), a popup appears:
Method breakpoints may dramatically slow down debugging
Why would it dramatically slow down debugging, is my question? What is different about putting the breakpoint on the first line of the function?
3 Answers 3
I looked around a little, and saw this post in the Intellij Documetation:
Method breakpoints act in response to the program entering or exiting a particular method. They let you target your debugging sessions by method you wish to investigate, rather than by line number. Method breakpoints let you follow the program flow at the method level as well as check entry and exit conditions. Note that using method breakpoints can slow down the application you are debugging.
I guess it stops the program right before it enters the method, so that you can evaluate the parameters and such before entering the method.
The reason it dramatically slows down is (This is what I can gather, because that is all I could find on method breakpoints in Intellij’s documentation) that it has to:
let you follow the program flow at the method level as well as check entry and exit conditions
and I suppose that would take a lot longer than just halting the program’s execution
Intellij Debugger slow: Method breakpoints may dramatically slow down debugging
When I start intellij debugger, it comes the the hint you can see in the screenshot. the debugger takes a lot of time to start. How to solve this problem?
8 Answers 8
Turn off the method breakpoint from the debug panel. Here is a screenshot.
In IDEA 2017.1 Emulated Method Breakpoints were introduced: https://www.jetbrains.com/help/idea/using-breakpoints.html#method_breakpoint They allow using method breakpoints without the performance penalty. Enabled by default.
From the JetBrains Team: «Method breakpoints will slow down debugger a lot because of the JVM design, they are expensive to evaluate. Remove method breakpoints and consider using the regular line breakpoints.». See more.
To make the long story short, it seems that the root issue is that Method Breakpoints are implemented by using JPDA‘s Method Entry & Method Exit feature. This implementation requires the JVM to fire an event each time any thread enters any method and when any thread exits any method.
Look for the red diamond icons (not red circles) in your code, those represent the method breakpoints. Most probably you set them at get()/set() methods in Kotlin.
In my case, I used Android Studio, When I set Break-Point on a method name line (called Java Method Break-Point ), The Android Studio show me the this warning and debugging was so slow.
By removing this Break-Point my problem solved.
Русские Блоги
idea Method breakpoints may dramatically slow down debugging
Идея отладочная яма:
Проект Deia не может начать
Консоль: метод точки останова может значительно замедлить отладку
Перезагрузите сервер и перезапустите идею не имеет решения.
Нажмите «Готово», чтобы удалить «крючок» в поле передней выбора.
Интеллектуальная рекомендация
PS запись обучения
19.03.21 Я загрузил комплексные обучающие видеоуроки Photoshop CC 2015 и обучающие видеоуроки по новым функциям PS CC 2015. Я просмотрел несколько видео, но мне кажется, что они в основном объясняют н.
mysql _Foreign ключи, отношения сущностей и диаграммы ER
проверка данных весеннего mvc
проверка данных весеннего mvc Два способа проверки данных Spring MVC: 1.JSR303 2.Hibernate Validator Второй метод является дополнением к первому методу Шаги для проверки данных с использованием Hibern.
2. Звонки между springcloud-сервисами (RestTemplate)
1. [Экспериментальная цель] Понимать предварительный, средний, последующий порядок и иерархическую последовательность бинарных деревьев; Свяжите язык C со структурой данных двоичного дерева; Освойте с.
Методические точки останова могут значительно замедлить отладку
При добавлении точки останова в строку объявления метода (в Intellij IDEA или Android Studio) появляется всплывающее окно:
Контрольные точки метода могут значительно замедлить отладку
Почему это резко замедляет отладку, мой вопрос? Чем отличается точка останова в первой строке функции?
ОТВЕТЫ
Ответ 1
Я немного огляделся и увидел этот пост в Intellij Documetation:
Точка останова метода
Контрольные точки метода действуют в ответ на ввод программы или выход из определенного метода. Они позволяют настроить таргетинг на ваши сеансы отладки методом, который вы хотите исследовать, а не по номеру строки. Методические точки останова позволяют следить за потоком программы на уровне метода, а также проверять условия входа и выхода. Обратите внимание, что использование меток breakpoints может замедлить приложение, которое вы отлаживаете.
Я предполагаю, что он останавливает программу до того, как она войдет в метод, чтобы вы могли оценить параметры и т.д. перед входом в метод.
позволяет следить за потоком программы на уровне метода, а также проверять условия входа и выхода
и я полагаю, что это займет намного больше времени, чем просто остановить выполнение программы
Ответ 2
Мое понимание заключается в том, что код должен выполняться интерпретируемо (вместо использования JIT для предварительной компиляции?), когда точка останова устанавливается на запись метода.
Если вы установите точку останова в первой строке метода, я подозреваю, что индекс номера строки в коде можно использовать для простой замены кода операции перебора для исходного кода операции, поэтому приложение работает на полной скорости. (который по-прежнему кажется мне довольно медленным при отладке;)
Ответ 3
От IntelliJ Team есть простое объяснение: «Точки останова метода сильно замедляют отладчик из-за дизайна JVM, их дорого оценивать»








