Size: a a a

2021 June 07

К

Константин in javascript_ru
Так как нету sweep and mark GC на уровне хоста
источник

К

Константин in javascript_ru
а WeakRef не особо помогает
источник

К

Константин in javascript_ru
У меня VM в VM =)
источник

AF

Alexey Fedotov in javascript_ru
так у тебя память утекает в JS или в ВМке на JS?
источник

AF

Alexey Fedotov in javascript_ru
И в этой ВМке свои ссылки и сборщик мусора?
источник

К

Константин in javascript_ru
нет, она опирается на хост.
Проблема в том, что виртуальная VM имеет финализаторы, а JS нет =) И когда она что-то типа удалила неявно - я не могу об этом знать
источник

К

Константин in javascript_ru
могу, но нужно делать сложный кастыль из WeakRef + FinalizationRegistry
источник

К

Константин in javascript_ru
Но там выползает тонна проблем, связаная с событиями.
МВ прокидывает объект которые может быть забинжен на событие хоста. И нужно хранить ссылку (чтобы вызвать событие)
источник

К

Константин in javascript_ru
Круто, спили с 12мб на 3мб на кложурах.
источник

AF

Alexey Fedotov in javascript_ru
А в чем костыльность WR + FR?
источник

К

Константин in javascript_ru
тем, что ты на изи теряешь ссылку
источник

К

Константин in javascript_ru
или локаешь ее
источник

К

Константин in javascript_ru
WR подразумевает что ты только ей будешь ссылаться, ну чтобы если объект был удален из VM, то и удален с хоста финализатором
источник

К

Константин in javascript_ru
а еще это нестабильно.
У меня было так, что у меня (16 GB)все ок работало, а у чувака с 4GB крашилось на рандоме.
Оказалось у него GC срабатывает чаще и удаляет объекты до того, как будет hard ref повешан
источник

К

Константин in javascript_ru
Это легко сделать когда у тебя строго видно связность, а не когда у тебя классы создаются кодогенератором =)
источник

AF

Alexey Fedotov in javascript_ru
ну, по идее, если ты реализуешь ВМку на таком низком уровне, что надо пользоваться викрефами (по-видимому, надо, если на руках асный байткод), то тогда всю память ВМки и надо покрывать викрефами, а как иначе?
источник

К

Константин in javascript_ru
викрефы хреново поддерживаются
источник

К

Константин in javascript_ru
=) нужен фолбек
источник

К

Константин in javascript_ru
а его нельзя реализовать, не реализовав свой GC
источник

К

Константин in javascript_ru
я пока пытаюсь сделать non-allock
источник