How can a finished Java or .NET application be made smaller and more efficient without changing the source code?
The compaction or pruning process can remove all the unused classes, methods, instance variables, design time metadata, and actual bytecode to produce a much smaller application. In addition, correctly applied obfuscation techniques, such as PreEmptive’s patented overload induction, can have a compacting effect. Due to its heavy reuse of identifier names, it saves significant space. Note: this entire process is performed on bytecode or MSIL, not source. The size reduction caused by compaction is literally staggering. Some customers have reported a 70% size reduction in their executable. We imagine those customers use large, third party libraries that were heavily trimmed. In our tests, we see a solid 30-40% shrinking in many applications. Compacted programs tend to load faster and run on less memory. For many applications that are distributed on CD-ROM, the size of the application typically isn’t a serious worry. However, more and more applications are involving a networked/distributed