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

Производительность Java 8 VS. Java 7

Я разрабатываю приложение для обработки изображений Java 7u80 с использованием библиотек С++ через JNI.

Поскольку я был готов параллельно выполнять потоки с Java 8u60, я просто переключился на JDK 8 и перезапустил все мои модульные тесты.

Java 8u60 Overall duration: **35'408 [ms]**
Java 7u80 Overall duration: **29'581 [ms]**

Java 7 в моем случае на 17% быстрее, чем Java 8 (тот же код, уровень кода соответственно 7 и 8).

  • Мне было интересно, может ли такой результат быть конкретным для моего приложения, или если другие уже заметили понижение производительности с использованием формы с Java 7 до 8?
  • Есть ли какая-то конкретная оптимизация в коде, чтобы получить лучшее из Java 8?

Если ничего не поделаешь, я бы предпочел реализовать многопотоковый код с Java 7, а не 8, чтобы сохранить прирост производительности у меня уже с Java 7.

4b9b3361

Ответ 1

Запущено 21 тест SOAPUI (параллельный) против WLS 12.1.3. Java 7u51 (*) и Java 8u60 в моей тестовой среде.

Результаты тестов ниже (скриншоты включены в случае).

Подводя итог: время SOAPUI - это просто время выполнения SOAPUI для каждого прохода, а время JMX (кумулятивное между каждым проходом) - это время, затрачиваемое на критическую часть моего приложения.
Метрики JMX - это время вычисления (которое я пытаюсь свести к минимуму). Я не буду полагаться на показатель SOAPUI, поскольку я не знаю, как он рассчитывается точно.

Согласно SOAPUI, JDK 7u51 был 6,7% быстрее, чем JDK 8u60.
Согласно JMX, JDK 7u51 был 15,6% быстрее, чем JDK 8u60.

Последние подтверждают (мне) тенденцию, наблюдаемую в моих модульных тестах - тот же результат. Несмотря на то, что эти тесты, вероятно, не подходят для оценки производительности JVM, я полагаю, что в моем сценарии предпочтительнее оставаться на JDK7, так как в моем случае важный аспект важен.

Java 7
Pass1 SOAPUI: 22'324 [ms] - JMX :16'286 [ms]
Pass2 SOAPUI: 24'129 [ms] - JMX :33'510 [ms]
Pass3 SOAPUI: 22'170 [ms] - JMX :49'923 [ms]
ВСЕГО SOAPUI: 68'623 [ms] (JMX: 49'923 [ms])

Java 8
Pass1 SOAPUI: 25'150 [ms] - JMX :19'767 [ms]
Pass2 SOAPUI: 24'564 [ms] - JMX :39'702 [ms]
Pass3 SOAPUI: 23'846 [ms] - JMX :59'172 [ms]
ВСЕГО SOAPUI: 73'560 [ms] (JMX: 59'172 [ms])

(*): нет времени на установку Java 7u60, как в моем unit test

Скриншоты

введите описание изображения здесь