Profile-guided code compression

Saumya Debray, William Evans

Research output: Contribution to conferencePaper

70 Scopus citations

Abstract

As computers are increasingly used in contexts where the amount of available memory is limited, it becomes important to devise techniques that reduce the memory footprint of application programs while leaving them in an executable form. This paper describes an approach to applying data compression techniques to reduce the size of infrequently executed portions of a program. The compressed code is decompressed dynamically (via software) if needed, prior to execution. The use of data compression techniques increases the amount of code size reduction that can be achieved; their application to infrequently executed code limits the runtime overhead due to dynamic decompression; and the use of software decompression renders the approach generally applicable, without requiring specialized hardware. The code size reductions obtained depend on the threshold used to determine what code is "infrequently executed" and hence should be compressed: for low thresholds, we see size reductions of 13.7% to 18.8%, on average, for a set of embedded applications, without excessive runtime overhead.

Original languageEnglish (US)
Pages95-105
Number of pages11
DOIs
StatePublished - Jan 1 2002
EventProceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation (PLDI'02) - Berlin, Germany
Duration: Jun 17 2002Jun 19 2002

Other

OtherProceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation (PLDI'02)
CountryGermany
CityBerlin
Period6/17/026/19/02

Keywords

  • Code compaction
  • Code compression
  • Code size reduction
  • Dynamic decompression

ASJC Scopus subject areas

  • Software

Fingerprint Dive into the research topics of 'Profile-guided code compression'. Together they form a unique fingerprint.

  • Cite this

    Debray, S., & Evans, W. (2002). Profile-guided code compression. 95-105. Paper presented at Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation (PLDI'02), Berlin, Germany. https://doi.org/10.1145/543552.512542