2012-04-03 2 views
4

Моя программа отлично работает при запуске из eclipse, но я упаковываю ее в исполняемую банку и запускаю ее из командной строки, она работает намного медленнее (почти в пять раз медленнее). Я даже устанавливаю -vmargs при выполнении jar java -Xms40m -Xmx512m -jar jarFile.jar У меня нет старой версии java на моей машине. Я не могу понять, чего мне здесь не хватает. Как eclipse может запускать ту же самую программу быстрее, используя ту же самую версию Java и те же аргументы vm. Любая помощь будет оценена по достоинству.Исполняемая банка работает медленнее, чем Eclipse

Спасибо, Karthik

+0

jar немного медленнее, потому что он должен быть несжатым во время выполнения, но в 5 раз медленнее очень длинный. у какого размера есть файл jar? возможно, в файле jar нет необходимости в ressources. – MOST2K2

+1

мой файл jar около 5.5mb – karthik

ответ

1

Вы, скорее всего, напечатать много System.out/System.err (либо непосредственно, либо через лесозаготовок). Эмулятор Windows-терминала должен отображать ваш вывод и работает медленнее, чем Eclipse.

Попробуйте перенаправить все выходные данные в файл или NUL и снова измерить.

+0

Я не использую никаких утверждений System.out, но мой файл журнала огромен, как вы думаете, это одна из причин? – karthik

+0

Возможно. Профиль с jvisualvm в Oracle JDK и посмотреть, куда идет время. –

+0

удаление моего System.out s сработало для меня: от> 100s до <30s – CGFoX

6

У нас была аналогичная проблема, но проблема заключалась в том, что при экспорте Java-кода в качестве исполняемого файла jar из eclipse мы выбирали опцию «Требуемые пакеты библиотеки в сгенерированную банку». Это помещало все библиотеки, на которые ссылались, как файлы jar в runnable jar, которые, вероятно, были распакованы во время каждого прогона. Вместо этого мы использовали опцию «Извлечь требуемые библиотеки в сгенерированную банку» при создании файла runnable jar и скорости выполнения jar-файла - почти так же, как при запуске кода в eclipse.

+0

Мы потратили несколько часов вчера на выяснение этого, но только заметили, что некоторые люди уже разместили это в SO: http://stackoverflow.com/questions/22685103/runnable-jar-runs-too-slow-compare-to-eclipse-project – JavaTec

+0

Я могу подтвердить, что это сделало * огромную * разницу с моим исполняемым JAR-файлом. В Windows он работал не менее * 20 * раз быстрее, одна минута против ок. 20-25 минут. – mvreijn

+0

только что сделал это изменение, файл JAR отправился на луну, супер быстрый, потрясающий отзыв! – raffian

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