Die 9 Nanosekunden, die Sie mit! = Statt! = Gewonnen hätten, gingen verloren, wenn Sie diese Frage stellten. Die Auswahl der Operatoren ist nicht von Bedeutung, und diese Arten von Mikrooptimierungen sollten nicht in das Design Ihrer Anwendung eingreifen.
Reihenfolge der ifs ist jedoch signifikant. C# & & und || Operatoren sind kurzgeschlossen, dh wenn die erste Bedingung eines & & falsch ist, dann wird C# die zweite Bedingung nicht bewerten - ebenso, wenn die erste Bedingung eines || ist wahr, dann hat es keinen Sinn, die zweite Bedingung zu bewerten.
Sie können einen Kurzschluss zu Ihrem Vorteil verwenden. Die Faustregel ist es, Bedingungen zu strukturieren wie folgt:
- Wenn & mit &, Bedingungen höchstwahrscheinlich scheitern sollten an erster Stelle.
- Bei Verwendung von || sollten die Bedingungen, die am wahrscheinlichsten zum Erfolg führen, an zweiter Stelle stehen.
- Bedingungen, die sehr lange dauern, sollten als letzte ausgeführt werden.
ein triviales Beispiel verwenden:
if(existsInDatabase(username, password) && loginAttempts < 3) { ... }
existsInDatabase
eine lange Zeit ausführen dauern kann, könnte es eine Reise in die Datenbank oder einem Webservice erfordern.Wenn loginAttempts
> = 3, haben wir eine Reise in die Datenbank verschwendet. Wir werden unsere Ausflüge in die Datenbank minimieren, indem sie den Code zu schreiben, wie folgt:
if(loginAttempts < 3 && existsInDatabase(username, password)) { ... }
wenig zwickt wie dies manchmal einen großen Unterschied machen können, aber Sie wirklich brauchen, bevor sie diese Art von Änderungen zu profilieren. Wenn Sie 20 Entwicklerstunden damit verbringen, Ihren Code zu scannen und die Anweisungen für eine optimale Ausführung neu zu schreiben, aber Ihre Anwendung nur um 0,5 Sekunden beschleunigen, beträgt die Nettoeinsparung -19,99 Stunden. Berücksichtigen Sie dies, bevor Sie Ihre Anwendung optimieren.
tun Menschen Raum schneller mit ihrem rechten Daumen zu vergleichen mit dem linken Daumen –
Aus Performance-Sicht getroffen, tut dies überhaupt keine Rolle. Aus der Sicht der Lesbarkeit könnte es sein. – Brian
Der Versuch, Ihr Programm effizienter zu machen, indem Sie die Effizienz zwischen a == und! = Untersuchen, ist eine völlige Zeitverschwendung. Nur meine 0,02. – waqasahmed