Miscellaneous
Optimization
Some J2SE 6 benchmarks done during jChecs development.
Measures taken with Sun JVM 6 (beta 104) under Linux, no option.
Results are given comparatively to the reference (bold) in each serie : the biggest
number is the better.
Loops
for (forward) |
100% |
for (backward) |
100% |
while (forward) |
75% |
while (backward) |
100% |
Variables
Static |
100% |
Instance |
128% |
Local |
131% |
Autoboxing
int / new Integer(int).intValue() |
100% |
int / Integer.valueOf(int).intValue() |
95% |
int / Integer (Autoboxing) |
94% |
int / int |
5,688% |
Allocation of arrays
Array of objects |
Integer[64][64] |
100% |
Integer[64*64] |
145% |
Integer[32*64] |
289% |
Integer[0] |
121,132% |
Array of primitives |
int[64][64] |
104% |
int[64*64] |
144% |
int[32*64] |
291% |
int[0] |
121,257% |
Copy of arrays
Arrays of objects |
System.arraycopy(Integer) |
100% |
Arrays.copyOf(Integer) |
99% |
for (Integer, forward) |
49% |
for (Integer, backward) |
37% |
Arrays of primitives |
System.arraycopy(int) |
100% |
Arrays.copyOf(int) |
100% |
for (int, forward) |
95% |
for (int, backward) |
91% |
Iterating over items
ArrayList of objects |
for on Enumeration (Java 1.0) |
100% |
while on Enumeration (Java 1.0) |
100% |
for on Iterator (Java 1.2) |
132% |
while on Iterator (Java 1.2) |
133% |
Extended for (J2SE 5.0) |
121% |
Direct access (get, forward) |
205% |
Direct access (get, backward) |
163% |
Vector of objects |
|
for on Enumeration (Java 1.0) |
218% |
while on Enumeration (Java 1.0) |
218% |
for on Iterator (Java 1.2) |
161% |
while on Iterator (Java 1.2) |
161% |
Extended for (J2SE 5.0) |
160% |
Direct access (get, forward) |
208% |
Direct acces (get, backward) |
167% |
Array of objects |
|
Extended for (J2SE 5.0) |
403% |
Direct access (get, forward) |
391% |
Direct acces (get, backward) |
313% |
Array of primitives |
|
Extended for (J2SE 5.0) |
1,325% |
Direct access (get, forward) |
1,211% |
Direct access (get, backward) |
960% |
Concatenation of strings
Variables strings |
String |
100% |
StringBuffer |
109% |
StringBuilder |
111% |
Constants strings |
String |
381% |
StringBuffer |
220% |
StringBuilder |
223% |
Generics
Reading |
Integer = List<Integer> |
100% |
Integer = List<Object> |
97% |
Integer = List<? super Number> |
95% |
Object = List<Integer> |
112% |
Object = List<Object> |
119% |
Object = List<? super Number> |
113% |
Writing |
List<Integer> = Integer |
93% |
List<Object> = Integer |
94% |
List<? super Number> = Integer |
94% |
|