File: results.html

package info (click to toggle)
proguard 3.4-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 4,036 kB
  • ctags: 6,190
  • sloc: java: 33,225; xml: 279; makefile: 17; sh: 2
file content (134 lines) | stat: -rw-r--r-- 4,006 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<!doctype html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-style-type" content="text/css">
<link rel="stylesheet" type="text/css" href="style.css">
<title>ProGuard Results</title>
</head>
<body>

<h2>Results</h2>

<b>ProGuard</b> shrinks, optimizes, and obfuscates jars quickly and
effectively. The benefits obviously depend on the original code. The table
below presents some typical results:
<p>

<table>

<tr>
<th width="28%">Input Program</th>
<th width="12%">Original size</th>
<th width="12%">After shrinking</th>
<th width="12%">After optim.</th>
<th width="12%">After obfusc.</th>
<th width="12%">Total reduction</th>
<th width="12%">Time</th>
<th width="12%">Memory usage</th>
</tr>

<tr>
<td><a target="other" href="http://www.gnu.org/software/classpath/">ClassPath</a>, the GNU runtime library</td>
<td align="center">2.0 M</td>
<td align="center">2.0 M</td>
<td align="center">1.9 M</td>
<td align="center">1.9 M</td>
<td align="center">4 %</td>
<td align="center">31 s</td>
<td align="center">39 M</td>
</tr>

<tr>
<td><a target="other" href="http://java.sun.com/j2me/">Worm</a>, a sample midlet from Sun's J2ME</td>
<td align="center">9.9 K</td>
<td align="center">9.4 K</td>
<td align="center">9.3 K</td>
<td align="center">8.1 K</td>
<td align="center">17 %</td>
<td align="center">2 s</td>
<td align="center">13 M</td>
</tr>

<tr>
<td><b>ProGuard</b> itself</td>
<td align="center">404 K</td>
<td align="center">364 K</td>
<td align="center">361 K</td>
<td align="center">231 K</td>
<td align="center">42 %</td>
<td align="center">21 s</td>
<td align="center">35 M</td>
</tr>

<tr>
<td><a target="other" href="http://www.clarkware.com/software/JDepend.html">JDepend</a>, a Java quality metrics tool</td>
<td align="center">57 K</td>
<td align="center">36 K</td>
<td align="center">35 K</td>
<td align="center">30 K</td>
<td align="center">48 %</td>
<td align="center">8 s</td>
<td align="center">24 M</td>
</tr>

<tr>
<td><a target="other" href="http://jakarta.apache.org/tomcat/index.html">Tomcat</a>, the Apache servlet container</td>
<td align="center">1.2 M</td>
<td align="center">538 K</td>
<td align="center">528 K</td>
<td align="center">363 K</td>
<td align="center">68 %</td>
<td align="center">20 s</td>
<td align="center">39 M</td>
</tr>

<tr>
<td><a target="other" href="http://www.kclee.com/clemens/java/javancss/">JavaNCSS</a>, a Java source metrics tool</td>
<td align="center">624 K</td>
<td align="center">243 K</td>
<td align="center">235 K</td>
<td align="center">158 K</td>
<td align="center">74 %</td>
<td align="center">13 s</td>
<td align="center">35 M</td>
</tr>

<tr>
<td><a target="other" href="http://ant.apache.org/">Ant</a>, the Apache build tool</td>
<td align="center">2.3 M</td>
<td align="center">276 K</td>
<td align="center">265 K</td>
<td align="center">203 K</td>
<td align="center">91 %</td>
<td align="center">20 s</td>
<td align="center">49 M</td>
</tr>

</table>
<p>
Results were measured with ProGuard 3.0 on a 2.6 GHz Pentium 4 with 512 MB
of memory, using Sun JDK 1.4.2 in Fedora Core 1 Linux.
<p>
The program sizes include companion libraries. The shrinking step produces the
best results for programs that use only small parts of their libraries. The
obfuscation step can significantly shrink large programs even further, since
the identifiers of their many internal references can be replaced by short
identifiers.
<p>
Timings are mainly governed by the fixed overhead of reading jars and
initializing data structures. The actual shrinking, optimization, and
obfuscation are typically fast in comparison.
<p>
Memory usage (the amount of physical memory used by ProGuard while processing)
is governed by the basic java virtual machine and the total size of the
library jars and program jars.

<hr>
<address>
Copyright &copy; 2002-2005
<a href="http://www.graphics.cornell.edu/~eric/">Eric Lafortune</a>.
</address>

</body>
</html>