CoDeSe: Fast deserialization via code generation

Milos Gligoric, Darko Marinov, Sam Kamin

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Many tools for automated testing, model checking, and debugging store and restore program states multiple times. Storing/restoring a program state is commonly done with serialization/deserialization. Traditionally, the format for stored states is based on data: serialization generates the data that encodes the state, and deserialization interprets this data to restore the state. We propose a new approach, called CoDeSe, where the format for stored states is based on code: serialization generates code whose execution restores the state, and deserialization simply executes the code. We implemented CoDeSe in Java and performed a number of experiments on deserialization of states. CoDeSe provides on average more than 6X speedup over the highly optimized deserialization from the standard Java library. Our new format also allows simple parallel deserialization that can provide additional speedup on top of the sequential CoDeSe but only for larger states.

Original languageEnglish (US)
Title of host publication2011 International Symposium on Software Testing and Analysis, ISSTA 2011 - Proceedings
Pages298-308
Number of pages11
DOIs
StatePublished - 2011
Event20th International Symposium on Software Testing and Analysis, ISSTA 2011 - Toronto, ON, Canada
Duration: Jul 17 2011Jul 21 2011

Publication series

Name2011 International Symposium on Software Testing and Analysis, ISSTA 2011 - Proceedings

Other

Other20th International Symposium on Software Testing and Analysis, ISSTA 2011
Country/TerritoryCanada
CityToronto, ON
Period7/17/117/21/11

Keywords

  • code generation
  • deserialization

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'CoDeSe: Fast deserialization via code generation'. Together they form a unique fingerprint.

Cite this