кода (если у вас, конечно, не Андроид)?
Есть ли какая-нибудь теоретическая разница (или может кто обнаружил практическую) между 8, 11, 16?
Нашёл тут (https://www.reddit.com/r/Kotlin/comments/jdxr7a/which_jvm_version_should_i_target/) мнение, что "it's not using any new bytecode past JDK8", это так?
GraalVM11. Разница на вычислениях с OpenJDK огромная (в плюс).
Ого. Интересно почему.
Насчет нового байт-кода. Мы же говорим не про компилляцию, а про исполнение. Новый байт-код тут не при чем. А вот API новые есть.
Ну и про компиляцию в т.ч. Есть ли смысл ставить target выше 8?
Потому что там гораздо более сильный escape analysis и гораздо быстрее появляются новые оптимизации (поскольку написано не на эзотерическом С++).
Я ставлю 11 везде просто чтобы не вляпаться с несовместимостью API в рантайме (буду использовать что-то, чего нет в 8). Но с идейной точки зрения нет, разницы особой нет.
Есть только ради string concat быстрого
Спасибо, это ценная информация!
Типа, чтобы fail fast по версии байт-кода?
Если у вас CPU-bound, наши тесты показывают прямо сильное улучшение. Если Memory-bound, то Graal пока уступает современным GC типа ZGC и шенанды
Шенандоа и прочие специальные ГЦ - не панацея
Разумеется. Но они более умные, чем G1 или как его, который доступен в граале. Нам это не важно, мы в память не упираемся.
Спасибо, кэп.
Вы так сказали, будто в хотспоте еще parallel
А есть ли разница между community и enterprise именно в производительности? А то я конкретных пунктов не нашёл нигде
Есть, но не очень большая
В ЕЕ доступно больше эвристик
Обсуждают сегодня