Get jChecs at SourceForge.net. Fast, secure and Free Open Source software downloads
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%