Во время отладки Java-процесса, который обычно готов через 90 секунд, мое серверное приложение истекло время ожидания через 10 минут, потому что у меня была установлена точка останова на вход метода, даже когда точка останова даже не успела отключиться.
Согласно принятому ответу на этот вопрос SO, это, по крайней мере частично, связано с отключением JIT-компилятора Hotspot при установке точки останова на вход. Почему отлаживаемая программа так сильно тормозит при использовании отладки записей метода?
Однако моя JVM, похоже, работает на несколько порядков медленнее.Процесс, который я отлаживал, является многопоточным, и я отлаживал удаленно с помощью Eclipse.Просмотр диспетчера задач при установке точки останова на входе показал, что одно ядро выполняет значительно больше работы, чем другие ядра.С удаленной точкой останова нагрузка на ядра была более равномерной.
Хотя хотя бы некоторую медлительность можно объяснить отключением JIT-компиляции, мне интересно, проверяют ли точки останова входа метода с процессом отладчика для каждоговызов метода, в результате чего потоки синхронизируются в удаленном процессе отладчика для каждого вызова метода.Мне кажется, это может вызвать более значительное замедление, чем потеря JIT.