Gibt es einen Unterschied, der die Programmeffizienz zwischen x <= 10
und x < 11
beeinflusst? Gibt es noch andere Unterschiede?
Danke
Siehe Ссылка
Zum Beispiel wird für x <= 10
der Befehl if_icmple
verwendet und für den Befehl x < 11
wird der Befehl if_icmplt
verwendet. Beide sollten dieselbe Effizienz haben.
Es hängt davon ab, was Sie tun. Zum Beispiel siehe unten.
Die Schleife, in der i <= 10
101
Zeit ausführt, während i < 11
111
mal ausführt.
Ausgabe:
%Vor% Das hängt vom Typ von x ab. Im Fall einer Ganzzahl gibt es keinen Unterschied. Wenn es ein float
oder ein double
ist, gibt es einen deutlichen Unterschied zwischen den beiden.
Beide sind hinsichtlich der Effizienz identisch, Ihre persönliche Wahl .
Wenn Sie das Byte code der generierten Klasse überprüfen, haben beide die gleiche Komplexität strong> dh für beide Fälle wie die Schleife (angenommen, die Prüfung in einer for-Schleife vorhanden) wird dieselbe Anzahl von Zeiten ausgeführt, so dass sie dieselbe Komplexität haben, so dass keine Auswirkungen auf die Komplexität eines Programms hat .
Ich habe ein bisschen getestet, hier ist der Code:
%Vor%Die Ergebnisse nach 3 Läufen zeigen weniger als 1% Unterschied oder um es herum, das scheint eher abhängig von der aktuellen Belastung des Computers zu sein. Sie können es überprüfen.
& lt; 12680 ms
& lt; = 12673 ms
& lt; 12726 ms
& lt; = 12717 ms
& lt; 12624 ms
& lt; = 12774 ms
Tags und Links java performance