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
| package test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class Test {
public static final int SIZE = 3000000;
public static final int ITERATIONS = 100;
public static void main(String[] args) {
long[] times1 = new long[ITERATIONS],
times2 = new long[ITERATIONS],
times3 = new long[ITERATIONS],
times4 = new long[ITERATIONS];
List<Integer> list = new ArrayList<Integer>(SIZE);
int sum;
long time1, time2, time3, time4;
for (Integer i = 0; i < SIZE; i++) { list.add(i); }
for (int iterations = 0; iterations < ITERATIONS; iterations++) {
sum = 0;
time1 = System.currentTimeMillis();
for (int i = 0, l = list.size(); i < l; i++) { sum += list.get(i); }
time1 = System.currentTimeMillis() - time1;
sum = 0;
time2 = System.currentTimeMillis();
for (int i = 0; i < list.size(); i++) { sum += list.get(i); }
time2 = System.currentTimeMillis() - time2;
sum = 0;
time3 = System.currentTimeMillis();
for (Iterator<Integer> iter = list.iterator(); iter.hasNext();) { sum += iter.next(); }
time3 = System.currentTimeMillis() - time3;
sum = 0;
time4 = System.currentTimeMillis();
for (Integer i : list) { sum += i; }
time4 = System.currentTimeMillis() - time4;
times1[iterations] = time1;
times2[iterations] = time2;
times3[iterations] = time3;
times4[iterations] = time4;
}
times1 = stats(times1);
times2 = stats(times2);
times3 = stats(times3);
times4 = stats(times4);
System.out.println("Résultats : [min, max, moyenne]");
System.out.println("Itérations : " + ITERATIONS);
System.out.println("for with get() (1 x size()) : " + Arrays.toString(times1));
System.out.println("for with get() (n x size()) : " + Arrays.toString(times2));
System.out.println("for iterator : " + Arrays.toString(times3));
System.out.println("foreach : " + Arrays.toString(times4));
}
public static long[] stats(long[] values) {
long[] stats = new long[] { Long.MAX_VALUE, 0, 0 };
for (long val : values) {
if (val < stats[0])
stats[0] = val;
if (val > stats[1])
stats[1] = val;
stats[2] += val;
}
stats[2] /= values.length;
return stats;
}
} |
Partager