Size: a a a

2020 May 19

λ

λoλdog in graalvm_ru
Oleg Shelajev
native image — это такая технология чтобы скомпилировать твой java код в native executable (или shared library) ahead-of-time. можно считать ее такой performance оптимизацией
Ух маркетолог
источник

λ

λoλdog in graalvm_ru
источник

АН

Авроамэриканец Начрэ... in graalvm_ru
Oleg Shelajev
потому что интерпретаторам (для того чтобы использовать частичные вычисления, чтобы быстро работать (такой JIT для интерпретаторов граальвм)) нужно некоторые вещи от JIT компилятора хоста — то есть OpenJDK или GraalVM
Значит я могу запускать проекты использующие js интерпритатор graalvm, в рантайме OpenJDK, подключив jar библиотеки graalvm при запуске, но это будет работать медленнее чем в рантайме graalvm из-за того что последний имеет улучшенный JIT?
источник

АН

Авроамэриканец Начрэ... in graalvm_ru
Oleg Shelajev
native image — это такая технология чтобы скомпилировать твой java код в native executable (или shared library) ahead-of-time. можно считать ее такой performance оптимизацией
Знаю, но мне это не интересно. Как я понял, это позволяет быстрее запускать приложения, но лишает JIT оптимизаций
источник

АН

Авроамэриканец Начрэ... in graalvm_ru
А меня интересует серверное ПО
источник

OS

Oleg Shelajev in graalvm_ru
да.
источник

OS

Oleg Shelajev in graalvm_ru
graalvm тоже содержит рантайм OpenJDK
источник

АН

Авроамэриканец Начрэ... in graalvm_ru
Да, но модифицированный
источник

OS

Oleg Shelajev in graalvm_ru
да, конечно.
источник

АН

Авроамэриканец Начрэ... in graalvm_ru
А существует ли какой-то патч JIT части, что бы я мог собрать чистый OpenJDK, но на нём бы так же эффективно работал код использующий graalvm? Конкретно меня интересуют js и python.

И кстати, могу ли я компилировать код использующий graalvm в окружении OpenJDK?
источник

OS

Oleg Shelajev in graalvm_ru
конечно существует такой патч — это назвается graalvm
источник

OS

Oleg Shelajev in graalvm_ru
да можешь компилироать код как угодно JIT начинается работать только после байткода
источник

OS

Oleg Shelajev in graalvm_ru
как получать байткод - нет разницы, хоть руками генери
источник

OS

Oleg Shelajev in graalvm_ru
типа как Scala например делает
источник

OS

Oleg Shelajev in graalvm_ru
опять же, ты можешь взять JIT компилятор из graalvm
источник

OS

Oleg Shelajev in graalvm_ru
и подсунуть его в свой openjdk как джар файл
источник

OS

Oleg Shelajev in graalvm_ru
и если все версии и прочее совпадает - то будет работать быстро js
источник

OS

Oleg Shelajev in graalvm_ru
если не совпадает — то конечно что-нибудь где-нибудь развалится
источник

OS

Oleg Shelajev in graalvm_ru
гораздо проще и эффективнее — использовать сборки graalvm где это сделано за тебя
источник

OS

Oleg Shelajev in graalvm_ru
но каждому свое конечно
источник