Size: a a a

2019 February 25

OS

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

OS

Oleg Shelajev in graalvm_ru
Вот как тут
источник

ЖМ

Жора Монтировка in graalvm_ru
Попробую visualvm, у меня просто jprofiler
источник

OS

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

ЖМ

Жора Монтировка in graalvm_ru
Ну я пока не понял так сходу, да
источник

ЖМ

Жора Монтировка in graalvm_ru
Хорошая фича в visualvm :)
Ну в целом там понятно откуда столько нод, прямо как-то по-жесткому, для каждого объекта создается новый инстанс для пропертей и полей прототипа в том числе, откуда 100500 копий для всего, каждый новый объект в контексте оставляет после себя гору объектов
источник

ЖМ

Жора Монтировка in graalvm_ru
Просто не все проинициализировались еще в контексте
там получается пул на 100 контекстов
и в каждом контексте еще по 1000 объектов может быть, которы в свою очередь рождают еще больше
источник

A

Alex in graalvm_ru
То есть теоретически все ок?
источник

ЖМ

Жора Монтировка in graalvm_ru
теоретически да
я не увидел чего-то неожиданного или что предполагал
источник

A

Alex in graalvm_ru
1000 объектов разных на 100 контекстов
источник

A

Alex in graalvm_ru
Но все равно, это не 100мб вроде как
источник

ЖМ

Жора Монтировка in graalvm_ru
больше, в проде от 2гб хипа 60% был грааль
ну точнее запустили билд под нагрузкой, а он упал при тестировании
источник

ЖМ

Жора Монтировка in graalvm_ru
там как, внутри такое

JS_SCRIPT_1.meta = {.....}
JS_SCRIPT_1.callFunction = function ....
JS_SCRIPT_1.init() = function....

и такое на каждый скрипт мы кладем в контекст, получается 1000х3
meta судя по дампу раскладывается по каждому объекту в нём, парсится, и заносится как graal object в хип, а у объекта еще прототип есть, и на прототип генерируется под каждую функцию и пропертю по объекту...

ну вот то на то оно и выходит
источник

OS

Oleg Shelajev in graalvm_ru
Мне кажется, что если прогнать некоторую нагрузку, то оно могло бы специализироваться и свернуться. Но я могу не до конца понимать, интерпретатор же наверное все равно останется.
источник

ЖМ

Жора Монтировка in graalvm_ru
у нас обычный hotspot
источник

ЖМ

Жора Монтировка in graalvm_ru
просто polyglot используем
источник

ЖМ

Жора Монтировка in graalvm_ru
Вот эта картинка конечно интересная, я пока не понял профита копировать каждую пропертю по 10 раз
источник

OS

Oleg Shelajev in graalvm_ru
А, понятно :) может весь смысл и есть в том что оно свернётся потом?
источник

OS

Oleg Shelajev in graalvm_ru
Вы не на 11 случайно?
источник

ЖМ

Жора Монтировка in graalvm_ru
ну вот собираемся
источник