2012-03-23 2 views
3

Я часто нашел режим отладки Eclipse полезным, полагаясь на заявления печати или протоколирование. Тем не менее, я обнаружил, что производительность режима отладки, кажется, , особенно, чувствительная к файловым ввода-выводам. Загрузка файла может быть способом медленнее (занимает ~ 25 раз), и поскольку мой рабочий процесс требует загрузки довольно большого файла, прежде чем я попаду на что-нибудь интересное, это для меня особенно неудобно.Файловый ввод-вывод невероятно медленный в режиме отладки Eclipse

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

Обратите внимание, что в отличие от this question, я не считаю, что это проблема с состоянием моего рабочего пространства.

ответ

1

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

У NetBeans есть способ указать, какие функции будут выполняться в профиле, поэтому я бы поискал аналогичную опцию в Eclipse, а затем рассказывал, что он не должен профилировать что-либо в пространстве имен java.* или любом вашем конкретном коде IO, если это не так. Помогите.

Я также убедился, что вы быстро читаете свой файл (используя буферизованные входные потоки, не используя Scanner и т. Д.). Могут также быть вещи в NIO, которые могут помочь, но я не знаком с этим.

+0

Это не помогает меня. Производительность IO прекрасна, когда не отлаживается, и сейчас меня не интересует микро-оптимизация, поскольку она достаточно хороша, и у меня есть более важные проблемы. Я не использую NetBeans, и, очевидно, если бы я мог найти такой вариант в Eclipse, я бы не задал этот вопрос. –

2

Вы можете подключиться к запущенному приложению с функцией удаленного отладки eclipse. Вы должны начать свое приложение с некоторыми параметрами:

java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y suspend=y -jar yourapp.jar

Затем в конфигурации отладки выберите Remote Application Java, используя порт 8001.

Более подробный с фото here

Смежные вопросы