Ich habe versucht, die Ausführungszeit mit ähnlichen Blöcken zu überprüfen.Derselbe Codeblock braucht eine andere Zeitdauer als
Beispielcode und Ausgabe unten sind,
public class Tester {
public static void main(String[] args) {
System.out.println("Run 1");
List<Integer> list = new ArrayList<>();
int i = 0;
long st = System.currentTimeMillis();
while (++i < 10000) {
list.add(i);
}
System.out.println("Time taken :" + (System.currentTimeMillis() - st));
System.out.println("Run 2");
int j = 0;
List<Integer> list2 = new ArrayList<>();
long ST = System.currentTimeMillis();
while (++j < 10000) {
list2.add(j);
}
System.out.println("Time taken :" + (System.currentTimeMillis() - ST));
System.out.println("Run 3");
int k = 0;
List<Integer> list3 = new ArrayList<>();
long ST2 = System.currentTimeMillis();
while (++k < 10000) {
list3.add(k);
}
System.out.println("Time taken :" + (System.currentTimeMillis() - ST2));
}
}
Ausgabe
Run 1
Time taken :6
Run 2
Time taken :3
Run 3
Time taken :1
Warum bin ich anders Zeitpunkt der Ausführung zu bekommen?
Ihre Antwort wird wahrscheinlich für jeden Durchlauf des Programms variieren .. Warum wollen Sie genau die gleichen Werte erwarten .. Side note: Diese ist nicht der richtige Weg für Benchmarking-Zeit. – TheLostMind
Dies ist abhängig von der Umgebung, Sie haben keine Kontrolle über die Ausführungszeit, dies kann für Umgebungen variieren. Sie können auch unterschiedliche Zeit für jeden Lauf erhalten. Ex I erhalten folgendes Ergebnis für Ihren Code Lauf 1 Zeit genommen: 1 Run 2 Zeit genommen: 0 Lauf 3 Zeit genommen: 1 –
@TheLostMind Ich war diese Art von Verhalten bemerkt und wurde neugierig. Es wird großartig sein, wenn Sie mir erklären, welche Umweltfaktoren zu diesem Verhalten führen. – Kajal