MareaHeaderGrey

Abstract

MareaCore is a small project which is the core of Marea. MareaCore's main goal is to glue all the rest of the projects and perform its task: automatic detection of unused objects and swap them in and out from primary and secondary memory.Marea uses:

Related Work

The main goal of MareaCore is object swapping. There is a tool called ImageSegment that works on Squeak and Pharo Smalltalk which provides object swapping. It has both, advantages and disadvantages. We wrote a paper called Object Swapping Challenges: an Evaluation of ImageSegment that provides a precise description of objects swapping and exporting, and related challenges. On the other hand, it provides a detailed analysis of the ImageSegment solution and compare it with other related work. Our conclusion was that ImageSegment has good performance but as long as there are few shared objects between the swapped subgraph and the remaining objects. ImageSegment is fast mainly because the object graph is traversed in the Virtual Machine.But notice that ImageSegment is just an user-provided object graph swapper. It has nothing to do with used and unused objects. We presented our paper in Smalltalks 2010 and here are the slides. You can also download a pdf.

Interesting Links

Installation

Take a Pharo image an evaluate:
Gofer new
	squeaksource: 'Marea';
	package: 'ConfigurationOfMarea';
load.
(Smalltalk at: #ConfigurationOfMarea) project lastVersion load. 

Tests

For the moment there isn't that much to show than the tests....soon more progress

Abstract

MareaCore is a small project which is the core of Marea. MareaCore's main goal is to glue all the rest of the projects and perform its task: automatic detection of unused objects and swap them in and out from primary and secondary memory.

Marea uses:

  • Unused Objects Detector to detect the possible unused objects to swap out
  • Fuel to serialize the object and hence be able to write them on disk
  • Ghost Proxies to replace the original unused objects by proxies that intercept all received messages and know how to load back the swapped out objects.

Related Work

The main goal of MareaCore is object swapping. There is a tool called ImageSegment that works on Squeak and Pharo Smalltalk which provides object swapping. It has both, advantages and disadvantages. We wrote a paper called Object Swapping Challenges: an Evaluation of ImageSegment that provides a precise description of objects swapping and exporting, and related challenges. On the other hand, it provides a detailed analysis of the ImageSegment solution and compare it with other related work.

Our conclusion was that ImageSegment has good performance but as long as there are few shared objects between the swapped subgraph and the remaining objects. ImageSegment is fast mainly because the object graph is traversed in the Virtual Machine.

But notice that ImageSegment is just an user-provided object graph swapper. It has nothing to do with used and unused objects.

We presented our paper in Smalltalks 2010 and here are the slides. You can also download a pdf.

Interesting Links

  • An already compiled Virutal Machine (for MacOS) for testing available here. Otherwise a new VM must be compiled from sources and our changes. Still need to document how to do this.

Installation

Take a Pharo image an evaluate:

Gofer new
	squeaksource: 'Marea';
	package: 'ConfigurationOfMarea';
load.
(Smalltalk at: #ConfigurationOfMarea) project lastVersion load. 

Tests

For the moment there isn't that much to show than the tests....soon more progress