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

Разница в производительности между исходным кодом, предназначенным для разных версий Java?

У меня есть совместимый с Java источник Java, который будет работать исключительно на 1.8 VM и задается вопросом, выгодно ли было бы использовать 1.8 во время компиляции вместо старой версии.

Будет ли разница в производительности между 1,5 и 1,8? Есть ли соответствующая документация или журналы изменений, которые я мог бы рассмотреть?

4b9b3361

Ответ 1

javac практически не оптимизирует. Основная его оптимизация - постоянная вставка, и она всегда делала это.

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

Ответ 2

Поскольку скомпилированный код Java, на который вы ссылаетесь, представляет собой код байт Java, запуск старого приложения с новой версией JVM (1.8) должен повысить производительность вашего приложения без необходимости перекомпиляции байтового кода.

Вы можете посмотреть официальную документацию Oracle относительно улучшения производительности JDK 8, чтобы понять, что изменилось.

Ответ 3

Я обычно устанавливаю компиляцию в 1.7. Новый синтаксис лямбда среди других функций java 8 хорош, но у меня гораздо меньше проблем с совместимостью с java 7, и это то, к чему я привык.

Если вы используете виртуальную машину для работы в себе, и вы знаете, что не полагаетесь на фреймворки, в результате чего возникнут проблемы, обязательно начните с java 8. Вы также можете проверить официальную документацию, но в Википедии есть хороший журнал изменений imo: https://en.wikipedia.org/wiki/Java_version_history

Ответ 4

Я нашел этот источник Oracle, в котором обсуждается совместимость Java 7 с более ранними версиями. Он упоминает только байт-код invokedynamic как (байт-код) разницы между версиями 7 и 6. Поскольку байт-код не сильно меняется, эффекты байт-кода версии 5 по сравнению с версией 8 при производительности незначительны.

Ответ 5

Кроме производительности, вы должны учитывать тысячи исправлений ошибок, которые были исправлены с 1,5

Существуют также новые API на 1.8, такие как javafx, NIO, lambas.

Oracle объявила, что swing больше не будет обновляться, поэтому, если ваше приложение имеет графический интерфейс, вы должны начать искать перенос в javafx.

В oracle site btw, когда вы загружаете новый jdk, есть также ссылка на него в списке изменений