-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GC #14
Comments
Первые релизы OS были с ReferenceCounters, но потом от него пришлось отказаться, т.к. он ничего не упрощал, если конечно мы хотим автоматически разруливать циклические зависимости. В текущей версии ReferenceCounters используется для "захватывания" объектов OS в пользовательском коде. За это отвечает external_ref_count в struct GCValue. GC пропускает объекты с external_ref_count > 0. |
Идея в том чтобы объект удалялся сразу после потери ссылки не прибегая к запуску GC. Подобные вопросы возникают из-за возникновения проблем с GC в Lua. Есть даже эксперименты по переделки Lua на ReferenceCounters, которые поднимают его производительность в разы. Резюмируя, для какой ниши Вы позиционируете OS? Если для игровой, то GC должен быть сугубо опциональным, так как стабильный FPS наше всё. |
Так то оно так, но вот что я думаю по этому поводу:
Сейчас я занимаюсь оптимизацией (о чем напишу отдельную статью) и за последние пару дней мне удалось повысить производительность в 2 раза и я продолжаю оптимизировать. Вопрос уже идет на наносекунды, поэтому на счету любая лишняя команда или вызов функции. P.S. в OS используется инкрементный GC |
Поэтому вопрос разве нельзя это добавить опционально как в Python? |
|
Ок, спасибо, Вашу позицию по данному вопросу понял |
1.18-rc, 'var' is used to declare function scope variable, 'local' used ...
Для игровой разработки критично время GC.
Очень хорошо что бы на ряду с GC был ReferenceCounters, что бы можно было отказаться от GC вообще.
См. Squirrel
The text was updated successfully, but these errors were encountered: