3 ms·
From Terrence Cole: >Exact rooting is required for us to use GC algorithms that relocate objects in memory. It will allow us to implement compacting GC to save
by doctorpangloss 13y ago
From Terrence Cole:
>Exact rooting is required for us to use GC algorithms that relocate objects in memory. It will allow us to implement compacting GC to save memory and generational GC to push our performance to the next level.
For a comprehensive overview of a good open source GC, check out Mono's description of theirs:
http://www.mono-project.com/Generational_GC http://www.mono-project.com/Generational_GC
Browser GC is really tricky. The browser provides all sorts of complicated native services, like a flexible rendering engine (you know, HTML), recording audio, LocalStorage—really complex stuff implemented efficiently in C++ and with cross-platform support. All of these native objects can be accessed/instantiated from Javascript. Hence the GC is especially well tuned, on top of the security requirements around dealing with untrusted code running trusted code in general. It's a big undertaking for sure.