Gofer new squeaksource: 'Marea'; package: 'ConfigurationOfMarea'; load.
(Smalltalk at: #ConfigurationOfMarea) project lastVersion load.
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:
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.
Take a Pharo image an evaluate:
Gofer new squeaksource: 'Marea'; package: 'ConfigurationOfMarea'; load.
(Smalltalk at: #ConfigurationOfMarea) project lastVersion load.
For the moment there isn't that much to show than the tests....soon more progress