Re: my garbage collector sucks
"Roger Binns" <[email protected]>
| Newsgroups | gmane.comp.lang.prothon.user |
|---|---|
| Message-ID | <[email protected]> |
You may want to read some of Dan's stuff (he is implementing Parrot) at http://www.sidhe.org/~dan/blog/archives/000324.html http://www.sidhe.org/~dan/blog/archives/000323.html > I have also found out that reference counting has problems with > multi-processor systems and distributed systems. >From that second post, this observation may be useful: The two basic forms of automatic storage reclamation, tracing and reference counting, were invented at the dawn of the high-level language era over 40 years ago. Since then there have been many improvements and optimizations, but all systems are based on one or the other of these methods, which are uniformly viewed as being fundamentally different and possessing very distinct performance properties. We have implemented high-performance collectors of both types, and in the process observed that the more we optimized them, the more similarly they behaved -- that - they seem to share some deep structure. We present a formulation of the two algorithms that shows that they are in fact duals of each other. Intuitively, the difference is that tracing operates on live objects, or "matter", while reference counting operates on dead objects, or "anti-matter". For every operation by the tracing collector, there is a precisely corresponding anti-operation by the reference counting collector. Roger