On Mon, May 16, 2011 at 10:37 AM, Andreas Gal <[email protected]> wrote:
>
> On May 16, 2011, at 8:30 AM, Tim Chevalier wrote:
>
>> On Sun, May 15, 2011 at 11:42 PM, Graydon Hoare <[email protected]> wrote:
>>> This statement is highly debatable. There are several kinds of GC and
>>> several kinds of RC, and they both have different cache behavior (GC trashes
>>> the whole cache regularly and doubles heap pressure; RC hurts cache
>>> coherence *if* you're doing shared memory multiprocessing but otherwise
>>> tends to cost in code overhead..)
>>
>> I assume you're just referring to copying GC, given the assertion
>> about doubling heap pressure? There are other types of GC, and even
>> assuming copying, generational collectors have been used to *improve*
>> cache behavior: for example, Chilimbi and Larus, "Using Generational
>> Garbage Collection To Implement Cache-Conscious Data Placement" (ISMM
>> '98).
>
> The paper does not support your claim. It shows that some copying GCs have 
> really terrible cache characteristics (Cheney), and then proposes a new 
> algorithm that improves that for some workloads over the known terrible ones. 
> The paper doesn't analyze whether the old GC algorithm or the new GC 
> algorithms are more cache efficient than reference counting.
>

Ah. I wasn't claiming anything about the relationship about GC and
ref-counting. But I found Graydon's assertion that "GC trashes the
whole cache regularly" to be rather strong, as there are many kinds of
GC, not just copying.

Cheers,
Tim


-- 
Tim Chevalier * http://cs.pdx.edu/~tjc/ * Often in error, never in doubt
"an intelligent person fights for lost causes,realizing that others
are merely effects" -- E.E. Cummings
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to