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 language | English (US) |
---|---|
Pages | 95-105 |
Number of pages | 11 |
DOIs | |
State | Published - 2002 |
Event | Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation (PLDI'02) - Berlin, Germany Duration: Jun 17 2002 → Jun 19 2002 |
Other
Other | Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation (PLDI'02) |
---|---|
Country/Territory | Germany |
City | Berlin |
Period | 6/17/02 → 6/19/02 |
Keywords
- Code compaction
- Code compression
- Code size reduction
- Dynamic decompression
ASJC Scopus subject areas
- Software