Let's address another GC misconception: that you can divide GC algorithms into "perfectly precise" ones like tracing and "imprecise" ones like reference counting without cycle collection.
-
Show this thread
-
In fact, all GCs use some sort of conservative heuristic. The real problem GCs are trying to solve is to identify memory the program will never use again. This is a dynamic problem, and so a truly precise solution runs up against the halting problem.
3 replies 1 retweet 29 likesShow this thread -
Precise tracing GCs approximate this problem by identifying memory that is no longer *reachable* from a set of root objects. This is a narrower set than the set of data the program will dynamically use again. The difference is why you can still have leaks in e.g. JS.
6 replies 1 retweet 25 likesShow this thread
Oops, should be "a narrower set than the set of data the program will NOT use again".
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.