The table below presents some typical results:
Input Program | Original size | After shrinking | After obfusc. | Total reduction | Time | Memory usage |
---|---|---|---|---|---|---|
ProGuard itself | 144 K | 132 K | 90 K | 37 % | 28 s | 17 M |
JDepend, a Java quality metrics tool | 66 K | 42 K | 32 K | 51 % | 23 s | 14 M |
JavaNCSS, a Java source metrics tool | 534 K | 209 K | 148 K | 72 % | 35 s | 21 M |
LuciadMap, a Java GIS library | 3.2 M | 2.9 M | 2.4 M | 25 % | 2 min | 48 M |
A sample applet using LuciadMap | 3.2 M | 705 K | 621 K | 81 % | 1.2 min | 44 M |
LuciadiCAD, a Java CAD Viewer | 3.6 M | 959 K | 792 K | 78 % | 1.5 min | 51 M |
Results were measured with ProGuard 1.2 on a 500 MHz Pentium III, using Sun JDK 1.3.1 in Debian Linux. The program sizes include companion libraries.
Timings are mainly governed by reading and parsing library jars and program jars. Shrinking and obfuscation is practically instantaneous in comparison.
Memory usage (the total process size) is governed by the basic java virtual machine and the total size of the library jars and program jars.