Я сделал тест производительности коллекции, но каждый раз, когда я начинаю тест, у меня разные результаты. Почему это происходит и что я могу сделать для получения правильных результатов? Я думаю, моя проблема с опцией VM.Простой тест производительности, разные результаты
public class PerformanceTest {
private static void addToTheBeginTest() {
String nameOfMethod = "Method add 250_000 result: ";
List<Integer> arrayList = new ArrayList<>();
StopWatch.start();
for (int i = 0; i < 250_000; i++) {
arrayList.add(0, 1);
}
long resultAL = StopWatch.getElapsedTime();
outputInFile(nameOfMethod, resultAL);
}
private static void outputInFile(String nameOfMethod, long resultAl) {
File outputFile = new File("D:\\Idea Project\\ExperimentalProject\\src\\SimplePerformance\\");
outputFile.mkdir();
try (FileWriter writer = new FileWriter("D:\\Idea Project\\ExperimentalProject\\src\\SimplePerformance\\SimplePerformanceTest.txt", true)) {
writer.write(nameOfMethod);
writer.write(String.valueOf(resultAl) + " mc \n");
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
class StopWatch {
private static long result;
public static void start() {
result = System.currentTimeMillis();
}
public static long getElapsedTime() {
return System.currentTimeMillis() - result;
}
}
Результаты 3 раза
Что вы ожидали? Что не соответствовало вашим ожиданиям? – meskobalazs
у вас не будет времени, равного по шкале мс, если вы выполните один и тот же код дважды друг за другом. Но результаты довольно чертовски близки друг к другу, а среднее из них - скорее ваше время исполнения. – SomeJavaGuy
@meskobalazs, разные результаты, iam ожидают всегда одинакового времени. – diofloyk