كيفية كتابة ميكرو-بينشمارك صحيح في Java؟ مخاطر JIT والتحسينات
مرحباً بالجميع. أنا مطور Java مبتدئ، وأحتاج لقياس أداء تطبيقين لخوارزمية: أحدهما يستخدم `ArrayList` والآخر يستخدم مصفوفة عادية. كتبت اختباراً بسيطاً:
```java
public class MyBenchmark {
public static void main(String[] args) {
long start = System.nanoTime();
for (int i = 0; i < 100000; i++) {
// كود مع 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: " + (end - start));
start = System.nanoTime();
for (int i = 0; i < 100000; i++) {
// كود مع مصفوفة
int[] arr = new int[1000];
for (int j = 0; j < 1000; j++) {
arr[j] = j;
}
}
}
}
```