[Java] Code, der schwer zu bemerken, aber furchtbar langsam ist

Zweck

Während der Überprüfung stieß ich auf einen Code, der eine Mischung aus Integer und int ist. Für einen Moment dachte ich, dass es kein Problem geben würde, da es durch automatisches Boxen konvertiert werden würde, aber ich fragte mich, wie die Leistung war, also würde ich es gerne überprüfen.

Überprüfungsumgebung

Quellcode der Überprüfung

** 1. Muster mit einer Mischung aus Referenztypen und primitiven Typen **

qiita.java


long begin = 0L;
long end = 0L;

begin = System.currentTimeMillis();

Integer sum = 0;

for(int i = 0; i < 1000000; i++) {
	sum += i;
}

end = System.currentTimeMillis();

System.out.println(end - begin + "Millisekunde");

** 2. Nur primitives Muster **

qiita.java


long begin = 0L;
long end = 0L;

begin = System.currentTimeMillis();

int sum = 0;

for(int i = 0; i < 1000000; i++) {
	sum += i;
}

end = System.currentTimeMillis();

System.out.println(end - begin + "Millisekunde");

Implementierungsverfahren

Implementierungsergebnisse

** 1. Muster mit einer Mischung aus Referenztypen und primitiven Typen **

** 2. Nur primitives Muster **

Erwägung

Ein Muster mit gemischtem Referenztyp und primitivem Typ betrug durchschnittlich 15,33 Millisekunden, während ein Muster nur mit primitivem Typ durchschnittlich 4,33 Millisekunden betrug. Es ist ersichtlich, dass es ungefähr viermal so lange dauert, wenn Autoboxing mit einer Mischung aus Referenztypen und primitiven Typen arbeitet. Es stellt sich heraus, dass es nicht sinnlos automatisch verpackt werden sollte, abhängig von der Anzahl der Daten, bei denen es sich um einen Staubhaufen handelt.

Wir sehen uns wieder (^_^) Noshi

Recommended Posts

[Java] Code, der schwer zu bemerken, aber furchtbar langsam ist
[Java] Map # Merge ist schwer zu verstehen.
Schreiben Sie Code, der schwer zu testen ist
Code, der schwer zu debuggen und zu analysieren ist
Schreiben Sie einfach zu wartenden Code (Teil 1)
Schreiben Sie einfach zu pflegenden Code (Teil 4)
Schreiben Sie einfach zu wartenden Code (Teil 3)
[Windows] Java-Code ist verstümmelt
Java 14 neue Funktionen, mit denen Code geschrieben werden kann
Schreiben wir einen Code, der einfach zu pflegen ist (Teil 2)
Für Sie, die beklagen, dass die Konvertierung von JODConverter + LibreOffice langsam ist
Denken Sie an Testcode, der durch den Komparator-Test leicht zu verstehen ist
[Einführung in Java] Ich habe versucht, das Wissen zusammenzufassen, das ich für wesentlich halte
[Java: Memorandum] Bis der Zeilenvorschubcode CRLF in LF geändert wird
3 schwierige Punkte für Java Realm
[Java] Fluss vom Quellcode zur Ausführung
Java String-Klassenmethoden, die ein wenig nützlich sind, aber nicht bekannt sind
Initialisieren Sie das Ruby-Array mit 0 für Java, dh setzen Sie den Standardwert auf 0