Replies: 16 comments 9 replies
-
|
Critique I found the central thesis of this paper - that tracing and reference counting are duals, and that this enables a framework for analyzing the tradeoffs between GC design decisions - to be quite intuitive and accessible. The survey of GC algorithms lends concreteness to the observations. I thought there was sufficient attention given to the problem of cycle collection, and the fix-point formulation was pretty cool. My main criticism of this paper is that the cost analysis section was pretty meaningless to me; maybe I'm just not used to reading things that only present a framework for cost modeling instead of experimental evaluation, but I had a hard time translating from the formulas presented to an actual understanding of the tradeoffs between different strategies. There were also assumptions/oversimplifications made, such as ignoring memory fragmentation, which (while necessary for a contained theoretical discussion) are very real problems in practice. Questions How to empirically evaluate GC algorithms? Obviously performance is workload dependent and GCs are tailored to workloads, but what should we measure? What would need to go into designing a benchmark suite (and what are some examples of ones that are used today)? |
Beta Was this translation helpful? Give feedback.
-
|
Critique: Discussion questions:
|
Beta Was this translation helpful? Give feedback.
-
|
Critique: I find the unification of tracing and reference-counting-based garbage collection to be quite intuitive, since they naturally complement each other, for instance, tracing can handle cycles that RC cannot, and it makes sense that real high-performance GCs combine both approaches. The theoretical formulation of the unification, however, feels somewhat forced in that the RC algorithm is defined with buffered decrement operations rather than immediate ones, which doesn't align with how we typically think of simple RC. That said, I appreciate the fix-point formulation and the corresponding work-list algorithm (which, admittedly, is very common in compiler implementations). The result that tracing and RC compute the least and greatest fix-points respectively is elegant, though the practical implications of this duality remain unclear. As for the cost analysis, the model seems to rely on strong assumptions, namely, the lack of fragmentation and a steady-state application behavior. I would be interested to see how well the cost model aligns with real program benchmarks, and how the analysis might change if those assumptions were removed. Still, the paper presents a comprehensive survey of GC techniques and serves as a valuable reference for understanding the GC design. Discussion questions:
|
Beta Was this translation helpful? Give feedback.
-
|
Critique: In sections 3 and 4, the authors make a strong argument for the similarity of reference counting and tracing algorithms, one working from an overapporximation of liveness and the other working from an underapproximation. These two techniques (along with many other technical tricks) the authors used to build various garbage collectors. However, by sections 5 and 6, I feel like the argument that garbage collectors can all be modeled by these various notions of approximations of liveness weakened. Especially section 6.3 about the train algorithm, the interpretation of each car (and train) as macro-node with a reference to other cars and trains reasonable at a high level, but at the same time, the algorithm's procedure itself seemed to diverge heavily from the examples provided in section 4. In part this might be because the algorithm simply is way more complex, but I didn't see a concrete way to break it down into parts which directly resembled those of the algorithms presented in sections 3 and 4. Discussion Questions: Much of what the authors were doing felt like describing how various garbage collection algorithms could be built out of smaller uniform building blocks (e.g. tracing and rc collectors, macro nodes, remembered sets). Is there a concrete, small set of these algorithms and techniques which can be given a consistent interface and modularly put together to create the different garbage collectors described? In another phrasing, is it possible to make the arguments the authors make about how various garbage collectors can be interpreted using their theory more precise by constructing a set of primitives from the authors' theory to make a powerful "build your own garbage collector" language? |
Beta Was this translation helpful? Give feedback.
-
|
Critique: Discussion Question: |
Beta Was this translation helpful? Give feedback.
-
|
Critique Question |
Beta Was this translation helpful? Give feedback.
-
|
Critique:
Question(s):
|
Beta Was this translation helpful? Give feedback.
-
|
Critique |
Beta Was this translation helpful? Give feedback.
-
|
Critique: Question |
Beta Was this translation helpful? Give feedback.
-
|
Critique Question |
Beta Was this translation helpful? Give feedback.
-
|
Critique: Wow, this is a super cool and mathy paper. I really appreciate the formalization of garbage collection, and one more time (surprise!) it turns out that different looking "things" in CS are mathematically the same (like recursion and iteration, or the lambda calculus and the Turing machine). It is compelling that most garbage collectors are hybrids drawing from either side, and I found the cost analysis framework interesting and applicable. Question: Did this unified theory ever help in any quantifiable way? As a mathy person, I find it very cool either way, but I'm curious if, especially coming from IBM, there were any interesting applications of this model to garbage collector design. |
Beta Was this translation helpful? Give feedback.
-
|
Critique: Question: |
Beta Was this translation helpful? Give feedback.
-
CritiqueThis paper provides a new perspective that tracing and reference counting are two inherently different garbage collection techniques. The authors were able to show that all high-performance garbage collectors are actually hybrids of both tracing and reference counting. I also appreciated how thorough the paper was. However, while duality is elegant in theory, there are practical differences in performance between the duals (such as differences in locality, cache behavior, and pause times). I’m not sure whether the researchers fully accounted for that in the paper. Questions
|
Beta Was this translation helpful? Give feedback.
-
CritiqueI was thought it was very cool that they took two different garbage collection techniques and shined a new light on them. The paper , overall very thorough, was also put in a way that one could read through it and understand. I wonder what the practical value of this paper is. I am very interested in the impact of this paper on the modern day garbage collector, and whether it significantly impacted the techniques utillized in modern-day. #Questions
|
Beta Was this translation helpful? Give feedback.
-
CritiqueI thought it was really clever for the authors of the paper to connect two different garbage collection techniques and realize that they are duals of each other. I also found it cool that they showed that all high-performance collectors are actually hybrids combining both techniques, explaining why optimized implementations of both approaches converge toward similar performance characteristics. QuestionsDid this paper's findings influence or inspire any aspect of future garbage collectors? |
Beta Was this translation helpful? Give feedback.
-
CritiqueThis is a very interesting paper. It presents a formulation of two algorithm (tracing and reference counting for garbage collection), that used to be viewed as being fundamentally different, are actually duals of each other. Moreover, different collectors are in fact hybrids of tracing and reference counting. I did not know this before and this makes this paper very interesting to me. QuestionsSeems like there would be different performance trade-offs for different collectors, e.g., more similar to tracing or reference counting, or somewhere between? There are some cost modelings and discussions in the paper. But I would expect some clear conclusions supported by experiments. Given these different performance trade-offs, it would also be interesting to propose some strategies, that given a scenario and the target workload, which collector is more suitable? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
discussion thread for: A unified theory of garbage collection
discussion leads: helen ge, Jeffrey Qian
Beta Was this translation helpful? Give feedback.
All reactions