|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Hi,
In message "Re: GC error ?" on Fri, 22 Feb 2008 05:17:03 +0900, "Rick DeNatale" <rick.denatale@gmail.com> writes: |Yes, and it also suffers from two facts that make it perform |sub-optimally on a virtual memory system (i.e. just about any system |these days) | |1) It fails to compact the live objects |2) It pretty much is guaranteed to visit every memory page at least |twice per GC cycle. Indeed, we need two visits (one write to mark live objects/one read to sweep dead objects) per GC. But using bitmap marking technique[1], objects visit can be reduced to one. [1] http://izumi.plan99.net/blog/index.p...iendly-part-7/ There's an algorithm named "mostly copying GC" to address the former "fact", but it is too complex for us to implement. matz. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
On Feb 21, 1:51=A0pm, Yukihiro Matsumoto <m...@ruby-lang.org> wrote: > Hi, > > In message "Re: GC error ?" > =A0 =A0 on Fri, 22 Feb 2008 05:17:03 +0900, "Rick DeNatale" <rick.denat...= @gmail.com> writes: > > |Yes, and it also suffers from two facts that make it perform > |sub-optimally on a virtual memory system (i.e. just about any system > |these days) > | > |1) It fails to compact the live objects > |2) It pretty much is guaranteed to visit every memory page at least > |twice per GC cycle. > > Indeed, we need two visits (one write to mark live objects/one read to > sweep dead objects) per GC. =A0But using bitmap marking technique[1], > objects visit can be reduced to one. > > [1]http://izumi.plan99.net/blog/index.php/2008/01/14/making-ruby%e2%80%9..= |
|
![]() |
| Outils de la discussion | |
|
|