Size: a a a

2019 April 08

OS

Oleg Shelajev in graalvm_ru
если в конце концов там сидит машинный код
источник

OS

Oleg Shelajev in graalvm_ru
то все что выше должно знать
источник

ВВ

Виктор Вербицкий in graalvm_ru
Ну или как-то уточнить, что на обычной JVM работать будет, но включение truffle (-XX:+EnableJVMCI) добавит то-то, а полное включение (-XX:+UseJVMCICompiler) ещё и то-то...
источник

ВВ

Виктор Вербицкий in graalvm_ru
Просто у меня немного каша в этом месте образовалась...
источник

OS

Oleg Shelajev in graalvm_ru
потому что надо просто скачать graalvm не? )
источник

OS

Oleg Shelajev in graalvm_ru
я все понимаю :) я учту, это на самом деле очень хорошее замечание
источник

OS

Oleg Shelajev in graalvm_ru
про -XX:+EnableJVMCI меня кстати вот сейчас смущать стало
источник

OS

Oleg Shelajev in graalvm_ru
как это может работать?
источник

ВВ

Виктор Вербицкий in graalvm_ru
Oleg Shelajev
потому что надо просто скачать graalvm не? )
Необходимость этого ещё надо обосновать. Вот я и думаю как это обоснование правильно строить...
источник

OS

Oleg Shelajev in graalvm_ru
что быстрее работать будет? :)
источник

OS

Oleg Shelajev in graalvm_ru
-XX:+EnableJVMCI — мне кажется я понимаю как это может работать. Но не до конца — скажем если ~ java bytecode компилируется через c2, а интерпретатор js — truffle + graal — то как они этот машинный код куда-то подсовывают в code cache? мне надо подумать про это, но @VTutrinov говорил что у него работает так
источник

ВВ

Виктор Вербицкий in graalvm_ru
Обстрактное "быстрее" в данном случае непроканает. Надо ещё и объяснить механику получения этого самого "быстрее". Ну и почему это будет лучше, чем что-то своё с генерацией байткода костылить. NIH синдром тоже надо заранее предупредить 😊
источник

ВВ

Виктор Вербицкий in graalvm_ru
Oleg Shelajev
-XX:+EnableJVMCI — мне кажется я понимаю как это может работать. Но не до конца — скажем если ~ java bytecode компилируется через c2, а интерпретатор js — truffle + graal — то как они этот машинный код куда-то подсовывают в code cache? мне надо подумать про это, но @VTutrinov говорил что у него работает так
А может не подсовывают машинный код? Может просто на уровне байткода оптимизация идёт, а потом уже как есть в C2 подаётся?
источник

ВВ

Виктор Вербицкий in graalvm_ru
Я бы так делал...
источник

OS

Oleg Shelajev in graalvm_ru
там же нет байткода? truflle IR — это AST, graal IR — это graal graph (CFG  как в c2 но другой)
источник

OS

Oleg Shelajev in graalvm_ru
" Обстрактное "быстрее" в данном случае непроканает." — jit лучше — бенчмарки можно показать :)
источник

OS

Oleg Shelajev in graalvm_ru
заодно и свой язык быстрее станет )
источник

ST

Slava Tutrinov in graalvm_ru
Oleg Shelajev
-XX:+EnableJVMCI — мне кажется я понимаю как это может работать. Но не до конца — скажем если ~ java bytecode компилируется через c2, а интерпретатор js — truffle + graal — то как они этот машинный код куда-то подсовывают в code cache? мне надо подумать про это, но @VTutrinov говорил что у него работает так
в докладе на джокере в 2017, Крис показывал примеры с обеими флагами
https://chrisseaton.com/truffleruby/jokerconf17/understanding-how-graal-works.pdf.
то есть не разделял на трафл или трафл+джит
источник

OS

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

OS

Oleg Shelajev in graalvm_ru
да, там 9ка была
источник