[Pharo-dev] VM with fragmented memory

Stefan Marr smalltalk at stefan-marr.de
Mon Nov 25 12:06:43 EST 2013


On 25 Nov 2013, at 17:46, Clément Bera <bera.clement at gmail.com> wrote:

> An interesting point in V8 is that the data and pointers are not in the same spaces. It would mean in Cog, if I understand correctly, that byte and word objects are not in the same space as other objects. I guess this simplifies the GC logic. I don't know if they did that in VW.
> > I have a general question regarding VM. Are you aware of other Virtual machines supporting this? Does the Java VM support fragmented memory? .Net? V8?
> >
> > Any VM that uses the train algorithm supports segmented memory.  Any VM that uses "pools" or "regions" uses segmented memory.  VisualWorks' VM supports segments.  I'm pretty sure that V8 .Net & HotSpot provide segmented memory.
> >
> >
> > I would like to mention this in a research paper I am working on.

A very general reference could be the Garbage Collection Handbook (Jones, Hosking, Moss) chapter 8 and 10:

Partitioning the heap
  8.1 Terminology
  8.2 Why to partition
     Partitioning by mobility
     Partitioning by size
     Partitioning for space
     Partitioning by kind
     Partitioning for yield
     Partitioning to reduce pause time
     Partitioning for locality
     Partitioning by thread
     Partitioning by availability
     Partitioning by mutability
  8.3 How to partition
  8.4 When to partition

Chapter 10 elaborates on large objects and pointer-free objects (as well as algorithms that use partitioning).

Best regards

Stefan Marr
Software Languages Lab
Vrije Universiteit Brussel
Pleinlaan 2 / B-1050 Brussels / Belgium
Phone: +32 2 629 2974
Fax:   +32 2 629 3525

More information about the Pharo-dev mailing list