Существуют ли проблемы с безопасностью / производительностью при переносе кода Java с версии 1.8 до 1.5?
Я понимаю, что у старых JVM могут быть проблемы с безопасностью / производительностью, однако мой вопрос не о самой JVM. Возможно ли внести проблемы безопасности / производительности в код, который был написан для Java 1.8, но позже перенесен на 1.5 из-за самого процесса преобразования?
Я не нашел слишком много людей, обсуждающих это, однако я нашел некоторые комментарии в блоге автора инструмента лямбда-переноса Java 8, где он догадывается, что бэкаптирование лямбда-выражений на самом деле может немного увеличить производительность.
1 ответ
Здесь вы можете найти тест, сравнивающий JVM 1.6 с 7 и 8. У меня есть выдержка здесь:
Мои наблюдения:
На самом большом наборе данных (Machine Reassignment B10), который превосходит любой другой набор данных по размеру, Java 8 на 20% быстрее, чем Java 7, который уже на 17% быстрее, чем Java 6.
В некоторых случаях Java 8 работает медленнее, чем Java 7. Специально для наборов данных планирования курса Java 8 на 6% медленнее, чем Java 7. Надеемся, что новые выпуски Java 8 вскоре разрешат этот спад производительности.
В среднем, Java 8 всего на 1% быстрее, чем Java 7. При этом Java 7 уже на 16% быстрее, чем Java 6.
Несмотря на то, что это первый финальный выпуск OpenJDK 8, я не обнаружил никаких регрессий в Java 8. Примеры OptaPlanner воспроизводимы на 100%, поэтому, как и ожидалось, разные JRE дают одинаковые результаты на каждой отдельной итерации.
Похоже, что Java 8 работает немного быстрее, чем 6, и я могу только предположить, что Java 1.5 была медленнее, чем Java 6.
Что касается вашего вопроса о безопасности, я понятия не имею. Я никогда не использовал Java EE или Spring, или что-либо еще, что требовало безопасности в этом отношении.