|
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% |
|