Подтвердить что ты не робот

Время сборки существенно возрастает при переключении на Java 7

Мы используем Java в нашем процессе сборки, поскольку он используется для разрешения/публикации наших зависимостей через Ivy.

Нет проблем, и у нас не было двух лет, пока мы не попытаемся обновить обновление для Java 6 Update 26 до версии 7 7, а сборка на локальном ПК разработчика (WinXP) теперь занимает 2 часа, вместо 10 минут!

Ничто другое не изменилось на ПК, что делает его абсолютной целью для наших проблем.

Кто-нибудь знает о какой-либо причине, почему версия 7 Java будет делать такую ​​разницу в скорости, как это?

UPDATE: процесс сборки основан на NAnt, поэтому Java.exe вызывается из NAnt script, работающего в окне Command (DOS).

4b9b3361

Ответ 1

По моему опыту, Java 7 была огромным шагом назад с точки зрения скорости и совместимости. Я нашел его медленнее не только для компиляции, но и для JRE.

У меня также были серьезные проблемы с запуском eclipse (и да, я использовал обновление 7).

И с моей точки зрения в Java 7 нет ничего, что мне нужно. Мне нравится ForkJoinPool, и я могу получить это как дополнение к библиотеке для Java 6.

Может быть, Java 8 будет лучше.

Ответ 2

Я использую JDK 7u7, и я заметил лучшую производительность, настроив некоторые Параметры VM.

Вы можете попробовать G1GC и AgressiveOpts, чтобы помочь с временем компиляции.

Следуйте настройкам, которые я использую в своем редакторе:

-Xss8m 
-Xmn256m 
-Xms512m 
-Xmx1024m 
-XX:PermSize=256m 
-XX:MaxPermSize=512m 
-XX:+UseG1GC 
-XX:+OptimizeStringConcat 
-XX:+UseStringCache 
-XX:+AggressiveOpts

Вы найдете описание каждого параметра в Параметры виртуальной машины.

Надеюсь, это поможет.

Ответ 3

Сначала вы удалили JDK6 или оставили его на месте? Проверьте JDK_HOME и любое другое место, которое оно указано, чтобы убедиться, что вы действительно используете JDK7. В консоли XP type java -version и убедитесь, что это то, что ожидается. (Закройте/снова откройте командную строку, чтобы получить изменения в графическом интерфейсе Win.)

Никогда не указывалось, какая версия XP вы используете - 64-разрядная или 32-разрядная. Убедитесь, что на компьютере установлена ​​соответствующая среда JDK. (В зависимости от того, что именно выполняется, это может привести к ощутимой разнице. Кроме того, лучшим вариантом для отладки является сохранение ее прежней - уменьшите переменные.)

Устранить проблему и сузить ее. Устанавливает ли установка Eclipse медленнее после обновления? (Eclipse сам работает в JVM. Это хорошая базовая линия.) Является ли Eclipse указывая на правильный JDK, когда вы его проверяете? Попробуйте другие инструменты Java, чтобы увидеть, есть ли разница в производительности. Точки останова и ведение журнала в разных контрольных точках в сборке и любые исполняемые файлы Java - ваши друзья.

Так как Nant основан на .NET, вы посмотрели на фактически запущенный Java-процесс? Является ли ваше распределение Айви действительно старым?

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