list.toArray hat eine bessere Leistung mit der Größe! Ich erinnerte mich.
Wenn Sie ein wenig googeln, werden alle Seiten basierend auf der internen Implementierung so geschrieben.
Die VM-Leistung entwickelt sich jedoch auch von Tag zu Tag weiter.
Ist das zum 31. Mai 2018 wirklich der Fall?
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
list.add(Integer.toString(i));
}
int[] loopCounts = new int[] { 1000, 10000, 100000, 1000000, 10000000 };
for (int loop : loopCounts) {
long sum = 0;
for (int j = 0; j < 10; j++) {
long start = System.currentTimeMillis();
String[] temp = null;
for (int i = 0; i < loop; i++) {
temp = list.toArray(new String[0]);
}
long stop = System.currentTimeMillis();
sum += stop - start;
}
System.out.println("toArray(new String[0]) " + loop + "Zeitgeschwindigkeit*Die durchschnittliche Geschwindigkeit von 10 mal ist" + sum / 10 + "Es ist eine Millisekunde.");
sum = 0;
for (int j = 0; j < 10; j++) {
long start = System.currentTimeMillis();
String[] temp = null;
for (int i = 0; i < loop; i++) {
temp = list.toArray(new String[list.size()]);
}
long stop = System.currentTimeMillis();
sum += stop - start;
}
System.out.println("toArray(new String[list.size()]) " + loop + "Zeitgeschwindigkeit*Die durchschnittliche Geschwindigkeit von 10 mal ist" + sum / 10 + "Es ist eine Millisekunde.");
}
}
}
toArray (neuer String [0]) 1000-fache Geschwindigkeit * 10-fache Die durchschnittliche Geschwindigkeit beträgt 2 Millisekunden.
toArray (neuer String [list.size ()]) 1000-fache Geschwindigkeit * 10-fache Die durchschnittliche Geschwindigkeit beträgt 2 Millisekunden.
toArray (neuer String [0]) 10000-fache Geschwindigkeit * 10-fache Geschwindigkeit Die Durchschnittsgeschwindigkeit beträgt 19 Millisekunden.
toArray (neuer String [list.size ()]) 10000-fache Geschwindigkeit * 10-fache Geschwindigkeit Die durchschnittliche Geschwindigkeit beträgt 25 Millisekunden.
toArray (neuer String [0]) 100000-fache Geschwindigkeit * 10-fache Geschwindigkeit Die durchschnittliche Geschwindigkeit beträgt 207 Millisekunden.
toArray (neuer String [list.size ()]) 100000-fache Geschwindigkeit * 10-fache Geschwindigkeit Die Durchschnittsgeschwindigkeit beträgt 288 Millisekunden.
toArray (neuer String [0]) 1000000-fache Geschwindigkeit * 10-fache Geschwindigkeit Die Durchschnittsgeschwindigkeit beträgt 1497 Millisekunden.
toArray (neuer String [list.size ()]) 1000000-fache Geschwindigkeit * 10-fache Die Durchschnittsgeschwindigkeit beträgt 1562 Millisekunden.
toArray (neuer String [0]) 10000000-fache Geschwindigkeit * 10-fache Geschwindigkeit Die durchschnittliche Geschwindigkeit beträgt 12949 Millisekunden.
toArray (neuer String [list.size ()]) 10000000-fache Geschwindigkeit * 10-fache Die durchschnittliche Geschwindigkeit beträgt 15622 Millisekunden.
** toArray (neues T [0]) ist schneller! ** **.
Es ist umständlich, weil es in einem Artikel geschrieben wurde, der im Internet veröffentlicht wurde (Selbstdisziplin)
Externer Link: Arrays of Wisdom of the Ancients
Recommended Posts