Comment écrire correctement un micro-benchmark en Java ? Pièges du JIT et des optimisations
Bonjour à tous. Je suis un développeur Java débutant et j'ai besoin de mesurer les performances de deux implémentations d'un algorithme : l'une utilise `ArrayList`, l'autre un tableau ordinaire. J'ai écrit un test simple :
```java
public class MyBenchmark {
public static void main(String[] args) {
long start = System.nanoTime();
for (int i = 0; i < 100000; i++) {
// Code avec ArrayList
List list = new ArrayList<>();
for (int j = 0; j < 1000; j++) {
list.add(j);
}
int sum = 0;
for (int val : list) {
sum += val;
}
}
long end = System.nanoTime();
System.out.println("ArrayList time: " + (end - start));
start = System.nanoTime();
for (int i = 0; i < 100000; i++) {
// Code avec tableau
int[] arr = new int[1000];
for (int j = 0; j < 1000; j++) {
arr[j] = j;
}