Hi: On 25 Nov 2013, at 17:46, Clément Bera <bera.clement@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 -- Stefan Marr Software Languages Lab Vrije Universiteit Brussel Pleinlaan 2 / B-1050 Brussels / Belgium http://soft.vub.ac.be/~smarr Phone: +32 2 629 2974 Fax: +32 2 629 3525