Есть ли способ выборочной отладки одного приложения (или нескольких приложений) в JVM? - PullRequest
0 голосов
/ 03 августа 2011

Когда я запускаю JVM в режиме отладки, все естественно замедляется.

Есть ли способ заявить, что меня интересует только отладка одного приложения вместо 15 (составляющих здесь число) приложений, работающих на этой JVM.

Подход, который облегчает это, может ускорить процесс, особенно когда мы уже знаем из журналов и других средств трассировки, что вероятная проблема с одним приложением

Ценю мысли и комментарии

Спасибо Manglu

1 Ответ

2 голосов
/ 03 августа 2011

Я собираюсь сделать здесь много предположений, тем более что в вашем вопросе отсутствует много контекстной информации.

Есть ли способ заявить, что меня интересует только отладка одногоприложение вместо 15 (составляющих здесь число) приложений, которые работают на этой JVM.

Во-первых, я предполагаю, что вы пытаетесь сделать это в работе.Если так, отойдите назад и подумайте, что может пойти не так.Возможно, вы устанавливаете одну точку останова, но это поставит в очередь все запросы, поступающие на эту точку останова, и тем самым вы выбросите все требования SLA из окна.И если ваше приложение обрабатывает какие-либо конфиденциальные данные, вы, должно быть, видели то, чего не должны были видеть.

Во-вторых, даже если вы делали это в общей среде разработки или тестирования, это плохоидея.Особенно, если вы не уверены в том, что вы ищете.Если вы ищете ошибку синхронизации, возможно, это неправильный способ;очевидно, что другие потоки будут обмениваться данными, которые вы читаете, и уменьшать вероятность обнаружения виновника.

Лучшая альтернатива этому - включить ведение журнала трассировки в вашем приложении.Это, конечно, будет бесполезно, если вы не внедрили в свое приложение соответствующие вызовы регистратора (особенно для отслеживания аргументов метода и возвращаемых значений).Имея в своем распоряжении журналы трассировки, вы сможете создать интеграционный или модульный тест, который будет воспроизводить точные условия сбоя в вашей локальной установке разработчика;это где вы должны делать отладку.Иногда даже функционального теста будет достаточно.

В целом более быстрого подхода нет, поскольку он просто не применим ко всем ситуациям.Вы можете установить выбранное количество точек останова в любой другой среде, но это просто не стоит проблем, если только вы не знаете, что процесс отладки перехватывает только ваши запросы.

...