ABSTRACT
Current research in compiler optimization counts mainly CPU time and perhaps the first cache level or two. This view has been important but is becoming myopic, at least from a system-wide viewpoint, as the ratio of network and disk speeds to CPU speeds grows exponentially.For example, we have seen the CPU idle for most of the time during paging, so compressing pages can increase total performance even though the CPU must decompress or interpret the page contents. Another profile shows that many functions are called just once, so reduced paging could pay for their interpretation overhead.This paper describes:• Measurements that show how code compression can save space and total time in some important real-world scenarios.• A compressed executable representation that is roughly the same size as gzipped x86 programs and can be interpreted without decompression. It can also be compiled to high-quality machine code at 2.5 megabytes per second on a 120MHz Pentium processor• A compressed "wire" representation that must be decompressed before execution but is, for example, roughly 21% the size of SPARC code when compressing gcc.
- Timothy C. Bell, John G. Cleary, and lan H. Witten. Text Compression. Prentice Hall, 1990. Google ScholarDigital Library
- Jon Louis Bentley, Daniel D. Sleator, Robert E. Tarjan, and Victor K. Wei. A locally adaptive data compression scheme. Communications of the ACM 29(4):520-540, 4/86. Google ScholarDigital Library
- Peter Elias. Interval and recency rank source coding: Two on-line adaptive variable-length schemes. IEEE Transactions on Information Theory IT-33(1), 1987. Google ScholarDigital Library
- M. Franz and T. Kistler. Slim binaries. TR 96-24, Dept of Information and Computer Science, University of California, Irvine, 6/96. Also htto://www.ics.uci.edu/---oberon/research.html and to appear in Communications of the A CM. Google ScholarDigital Library
- M. Franz. Adaptive compression of syntax trees and iterative dynamic code optimization: Two basic technologies for mobileobject systems. TR 97-04, Dept of Information and Computer Science, University of California, lrvine, 2/97.Google Scholar
- Christopher W. Fraser and David R. Hanson. A Retargetable C Compiler: Design and Implementation. Addison Wesley Longman, 1995. Google ScholarDigital Library
- Christopher W. Fraser and Todd A. Proebsting. Custom instruction sets for code compression. http://www.cs.arizona.edu/?~opleltodd/papers/pldi2.ps, 10/95.Google Scholar
- T. Kistler and M. Franz. A tree-based alternative to Java bytecodes; TR 96-58, Dept of Information and Computer Science, University of California, Irvine, 12/96.Google Scholar
- A. Lempel and J. Ziv. On the complexity of finite sequences. IEEE Transactions on Information Theory 22(1 ):75-81, 1/76. Google ScholarDigital Library
- Ali-Reza Adl-Tabatabai, Geoff Langdale, Steven Lucco and Robert Wahbe. Efficient and language-independent mobile programs. PLDI'96:127-136, 6/96. Google ScholarDigital Library
- Todd A. Proebsting. Optimizing an ANSI C interpreter with superoperators, POPL95:322-332, 1/95. Google ScholarDigital Library
- ian H. Witten, Radford M. Neal, and John G. Cleary. Arithmetic coding for data compression. Communications of the A CM 30(6):520-540, 6/87. Google ScholarDigital Library
- Tong Lai Yu. Data compression for PC software distribution. Software-Practice & Experience 26(11 ): 1181 - 1195, 11/96. Google ScholarDigital Library
- J. Ziv and A. Lempel. Compression of individual sequences via variable-rate coding. IEEE Transactions on Information Theory 24(5):530-536, 9/78. Google ScholarDigital Library
Index Terms
- Code compression
Recommendations
Code compression
Current research in compiler optimization counts mainly CPU time and perhaps the first cache level or two. This view has been important but is becoming myopic, at least from a system-wide viewpoint, as the ratio of network and disk speeds to CPU speeds ...
Code compression for embedded VLIW processors using variable-to-fixed coding
In embedded system design, memory is one of the most restricted resources, posing serious constraints on program size. Code compression has been used as a solution to reduce the code size for embedded systems. Lossless data compression techniques are ...
Comments