Удаленный отладчик Eclipse Java очень медленный по VPN
Я иногда вынужден работать вдали от своего офиса, а это значит, что мне нужно подключиться к VPN в мою лабораторию. Я заметил, что удаленная отладка с Eclipse в этой ситуации ужасно медленная. Медленно до точки, где требуется 5-7 минут для отладчика для подключения к удаленному jvm. После подключения переходы между точками останова/линиями могут занимать 20-30 секунд каждый раз, и он обычно просто отключает соединение, заставляя меня начинать заново.
Может ли кто-нибудь объяснить, почему это так, даже если нет доступного решения? Моя латентность через VPN - это не то, что можно было бы ожидать, учитывая поведение удаленного отладчика. Я делаю все виды других вещей через VPN с минимальной задержкой/препятствием.
Я действительно пытаюсь понять, почему удаленный отладчик так огорчен VPN, когда в основном любая другая сетевая операция в порядке.
Спасибо,
Ответы
Ответ 1
Спасибо за попытку помочь, ребята. К счастью, мой коллега, испытывающий те же проблемы, глубоко погрузился в него. Из моей корреспонденции коллеги:
"Я установил прокси-сервер, сидящий между моим Eclipse и моей VM, который распечатывал коды команд из пакетов JDWP, которые мой Eclipse отправлял на мою виртуальную машину.
http://docs.oracle.com/javase/8/docs/platform/jpda/jdwp/jdwp-protocol.html объяснил мне, что означают эти команды.
То, что я увидел, было: каждый раз, когда я проходил через код, Eclipse отправлял в виртуальную машину десятки и десятки "связанных с потоком" команд. Они связаны со следующими возможностями VM: canGetMonitorInfo, canGetCurrentContendedMonitor, canGetOwnedMonitorInfo, canGetMonitorFrameInfo "
Эти возможности вызывают безумную задержку. Он приготовил решение, которое принудительно отключает эти возможности, и удобство использования отладчика резко возросло. Очевидно, что функции мониторинга потоков удаленного отладчика больше не работают, но с учетом того, насколько ранее была удалена удаленная отладка, это отличный компромисс.
Я попытаюсь выяснить, что именно он сделал, чтобы отключить возможности мониторинга потока.
Ответ 2
Отключение Show monitor
действительно помогло мне.
Bottom facing triangle
трудно обнаружить в отладочной перспективе. Так
Просто отправьте изображение, которое отсутствует в ссылке.
![введите описание изображения здесь]()
Ответ 3
С очень легким тестированием довольно большого проекта (почти 100 подпроектов, ping раз ~ 200-300 мс), Netbeans, похоже, делает нормально по сравнению с Eclipse.
Вы можете выполнить шаг, и требуется несколько секунд для обновления и прикрепления в < 1 мин.
Конечно, это раздражает, что нельзя использовать Eclipse, но это графический интерфейс и как такой способ лучше, чем простой JDB.
Ответ 4
Вы пробовали это? http://www.gontu.org/how-you-can-debug-a-remote-java-application/
Похоже, вам нужно настроить это, чтобы отлаживать приложение через VPN. Это, кстати, также было ответом на эту публикацию SO.
Надеюсь, это поможет вашему делу. Удачи!