Object swapping challenges: An evaluation of imageSegment

  • Authors:
  • Mariano Martinez Peck;Noury Bouraqadi;Stéphane Ducasse;Luc Fabresse

  • Affiliations:
  • RMoD Project-Team, Inria Lille-Nord Europe, Université de Lille 1, France and Université Lille Nord de France, Ecole des Mines de Douai, France;Université Lille Nord de France, Ecole des Mines de Douai, France;RMoD Project-Team, Inria Lille-Nord Europe, Université de Lille 1, France;Université Lille Nord de France, Ecole des Mines de Douai, France

  • Venue:
  • Computer Languages, Systems and Structures
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

In object-oriented systems, runtime memory is composed of an object graph in which objects refer to other objects. This graph of objects evolves while the system is running. Graph exporting and swapping are two important object graph operations. Exporting refers to copying the graph to some other memory so that it can be loaded by another system. Swapping refers to moving the graph to a secondary memory (e.g., a hard disk) to temporary release part of the primary memory (e.g., RAM). Exporting and swapping are achieved in different ways and the speed in the presence of large object graphs is critical. Nevertheless, most of the existing solutions do not address well this issue. Another challenge is to deal with common situations where objects outside the exported/swapped graph point to objects inside the graph. To correctly load back an exported subgraph, it is necessary to compute and export extra information that is not explicit in the object subgraph. This extra information is needed because certain objects may require to be reinitialized or recreated, to run specific code before or after the loading, to be updated to a new class definition, etc. In this paper, we present all general problems to our knowledge about object exporting and swapping. As a case of study, we present an analysis of ImageSegment, a fast solution to export and swap object graphs, developed by Ingalls. ImageSegment addresses the speed problems in an efficient way, as shown by the results of several benchmarks we have conducted using Pharo Smalltalk. However, ImageSegment is not a panacea since it still has other problem that hampers its general use.