PPMexe

作者: Milenko Drinić , Darko Kirovski , Hoi Vo

DOI: 10.1145/1180475.1180478

关键词:

摘要: With the emergence of software delivery platforms, code compression has become an important system component that strongly affects performance. This article presents PPMexe, a mechanism for program binaries analyzes their syntax and semantics to achieve superior ratios. We use generic paradigm prediction by partial matching (PPM) as foundation our codec. PPMexe combines PPM with two preprocessing steps: (i) instruction rescheduling improve rates (ii) heuristic partitioning binary into streams high autocorrelation. traditional algorithm (iii) using additional alphabet frequent variable-length supersymbols extracted from input stream fixed-length symbols. In addition, features (iv) low-overhead enables decompression starting arbitrary executable, property pivotal runtime delivery. implemented x86 tested it on several large applications. Binaries compressed were 18--24p smaller than files created off-the-shelf PPMD, one best available compressors

参考文章(47)
John L. Hennessy, David A. Patterson, Computer architecture (2nd ed.): a quantitative approach Morgan Kaufmann Publishers Inc.. ,(1996)
John L. Hennessy, David A. Patterson, Computer Architecture: A Quantitative Approach ,(1989)
Lee W. Hoevel, Michael J. Flynn, The structure of directly executed languages: a new theory of interpretive system design Stanford University. ,(1977)
Udi Manber, Brenda S. Baker, Deducing similarities in Java sources from bytecodes usenix annual technical conference. pp. 15- 15 ,(1998)
Saumya K. Debray, William Evans, Robert Muth, Bjorn De Sutter, Compiler techniques for code compaction ACM Transactions on Programming Languages and Systems. ,vol. 22, pp. 378- 415 ,(2000) , 10.1145/349214.349233
Gregory J. Chaitin, On the Length of Programs for Computing Finite Binary Sequences Journal of the ACM. ,vol. 13, pp. 547- 569 ,(1966) , 10.1145/321356.321363
Thomas P. Murtagh, An improved storage management scheme for block structured languages ACM Transactions on Programming Languages and Systems. ,vol. 13, pp. 372- 398 ,(1991) , 10.1145/117009.117016
Stan Liao, Srinivas Devadas, Kurt Keutzer, Steven Tjiang, Albert Wang, Storage assignment to decrease code size ACM Transactions on Programming Languages and Systems. ,vol. 18, pp. 235- 253 ,(1996) , 10.1145/229542.229543