Size: a a a

2019 April 08

OS

Oleg Shelajev in graalvm_ru
Слава прав! поговаривают - -XX:+EnableJVMCI — сделает partial evaluation и всякие truffle оптимизации получше но не включит graal для всего кода. -XX:+UseJVMCICompiler - включит для всего.

на OpenJDK 8 стандартной без них взлетит (ну как, заведется и будет работать, но медлненно)
источник

ST

Slava Tutrinov in graalvm_ru
я на 11-ой гонял
источник

ВВ

Виктор Вербицкий in graalvm_ru
Oleg Shelajev
Слава прав! поговаривают - -XX:+EnableJVMCI — сделает partial evaluation и всякие truffle оптимизации получше но не включит graal для всего кода. -XX:+UseJVMCICompiler - включит для всего.

на OpenJDK 8 стандартной без них взлетит (ну как, заведется и будет работать, но медлненно)
О! Вот это и хотелось услышать! 😊 Т.к. у нас есть в проде реализация своего языка выражений, написанная настолько влоб, что есть подозрение, что если даже просто на truffle переписать, то уже будет гораздо быстрее 😊
источник

ВВ

Виктор Вербицкий in graalvm_ru
И от сюда следующий вопрос: а как так получается? truffle расставляет какие-то специальные пометки в байткоде для graal или как?
источник

ВВ

Виктор Вербицкий in graalvm_ru
Или просто graal знает паттерны truffle байткода и на этом отрабатывает специальные оптимизации?
источник

OS

Oleg Shelajev in graalvm_ru
transferToInterpreterAndInvalidate например — про него грааль знает а другие нет
источник

OS

Oleg Shelajev in graalvm_ru
поэтому граль может не считать ветку за ним, потому что знает что ее не надо компилировать
источник

ВВ

Виктор Вербицкий in graalvm_ru
Ок. Уловил мысль 😊
источник

ВВ

Виктор Вербицкий in graalvm_ru
Спасибо!
источник

OS

Oleg Shelajev in graalvm_ru
я старался объяснить это вот на этом слайде
источник

OS

Oleg Shelajev in graalvm_ru
источник

OS

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

ВВ

Виктор Вербицкий in graalvm_ru
Просто этот самый "compiler sees" выглядит, как то, что это только на уровне truffle происходит, на не на уровне JIT
источник

ВВ

Виктор Вербицкий in graalvm_ru
Ну я так воспринял...
источник

OS

Oleg Shelajev in graalvm_ru
да, я понимаю, спасибо, это я получше постараюсь объяснить если буду еще такой доклад делать
источник

RU

Roman Ushakov in graalvm_ru
конечно, делай
источник

RU

Roman Ushakov in graalvm_ru
получилось очень круто
источник

ВВ

Виктор Вербицкий in graalvm_ru
Тут просто надо понимать, что в процессе участвует два компилятора truffle и graal jit. И надо как-то более точно указывать какой конкретно имеется в виду.
Ну или я опять что-то упускаю... 😊
источник

OS

Oleg Shelajev in graalvm_ru
источник

OS

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