And what if they don't live in the nursery?
On Aug 24, 2010, at 10:51 AM, Kevin Tew wrote: > Write barriers in racket3m are implemented using memory protection primitives > provided by the OS. > Between collections we only incur a write barrier cost the first time a page > (16k in racket) is written to. > After the first access per page, additional mutations on that page have no > extra cost, until the gc collects again. > Mutating objects living in the nursery has no gc overhead. > > Kevin > > On 08/24/2010 08:18 AM, Matthias Felleisen wrote: >> Yes, I was taught the same thing in 1984. That's not the issue. >> >> >> >> On Aug 24, 2010, at 10:17 AM, Robby Findler wrote: >> >> >>> My experience is that allocation is the primary thing to look for to >>> improve performance. >>> >>> Robby >>> >>> On Tuesday, August 24, 2010, Matthias Felleisen<matth...@ccs.neu.edu> >>> wrote: >>> >>>> Catching up with some mail. >>>> >>>> Neil wrote: >>>> >>>> >>>>> Avoiding allocation reduces GC collects, which reduces stutters and >>>>> hitches. >>>>> >>>> My (possibly old) understanding of GC and mutation tell me that this is >>>> one of those prejudices that programmers should get rid of. Every mutation >>>> goes across an access barrier in a GC like ours and can thus be much more >>>> expensive than a lightweight allocation. This was certainly true for early >>>> generational collectors. I do know that the hordes of Java programmers who >>>> invaded GCLand forced GC builders to make C/C++-like programs in Java work >>>> reasonably fast with collectors and so collectors changed. >>>> >>>> Matthew, do you know what it's really like for us? >>>> _________________________________________________ >>>> For list-related administrative tasks: >>>> http://lists.racket-lang.org/listinfo/dev >>>> >>>> >> _________________________________________________ >> For list-related administrative tasks: >> http://lists.racket-lang.org/listinfo/dev >> > > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/dev _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev