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
