Virtual memory on a narrow machine for an object-oriented language
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Design of a distributed object manager for the Smalltalk-80 system
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
A distributed repository for immutable persistent objects
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
The design and implementation of distributed Smalltalk
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
The GemStone object database management system
Communications of the ACM
Annotating objects for transport to other worlds
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Java virtual machine support for object serialization
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Parcels: A fast and feature-rich binary deployment technology
Computer Languages, Systems and Structures
Hi-index | 0.00 |
Serializing object graphs is an important activity since objects should be stored and reloaded on different environments. There is a plethora of frameworks to serialize objects based on recursive parsing of the object graphs. However such approaches are often too slow. Most approaches are limited in their provided features. For example, several serializers do not support class shape changes, global references, transient references or hooks to execute something before or after being stored or loaded. Moreover, to be faster, some serializers are not written taking into account the object-oriented paradigm and they are sometimes even implemented in the Virtual Machine hampering code portability. VM-based serializers such as ImageSegment are difficult to understand, maintain, and fix. For the final user, it means a serializer which is difficult to customize, adapt or extend to his own needs. In this paper we present a general purpose object graph serializer based on a pickling format and algorithm. We implement and validate this approach in the Pharo Smalltalk environment. We demonstrate that we can build a really fast serializer without specific VM support, with a clean object-oriented design, and providing most possible required features for a serializer. We show that our approach is faster that traditional serializers and compare favorably with ImageSegment as soon as serialized objects are not in isolation.