2017-04-08 4 views
1

Ich bin ein bisschen neugierig, wie diese Vergleichsoperationen unter der Haube funktionieren, während ich versuche, meinen Code so weit wie möglich zu optimieren und gut zu entwickeln Programmiergewohnheiten.C - 'Größer als' vs 'Größer oder gleich' Leistung

Betrachten wir zum Beispiel die Aussage

0 > 1 

Es sollte nur prüfen, ob 0 größer als 1

Aber dann denke über die Aussage

0 >= 1 

Ist es zuerst zu prüfen, ob 0 ist größer als 1, und wenn sie gleich sind?

ich gefragt bin, denn wenn dies der Fall wäre, würde auch das nicht bedeuten, dass

a > b 

Hälfte der Menge an Operationen im Vergleich zu

a >= b 
erfordert?

+1

Auf den meisten modernen Architekturen werden alle diese verschiedenen Vergleichsoperationen auf einen einzelnen Befehl abgebildet. Konzentrieren Sie sich hauptsächlich auf lesbaren, wartbaren, robusten und korrekten Code - Mikrooptimierungen kommen später (wenn überhaupt). –

+1

unter der Haube 101: 1) überprüfen Sie die Baugruppe 2) Maßnahme –

+0

Danke für die Kommentare. Ich werde sicherstellen, dass ich meinem Compiler mehr Vertrauen schenke. :) – Lobs001

Antwort

4

Wie von anderen erwähnt, und here:, haben die meisten modernen Prozessoren bereits Anweisungen, die komplexere Fälle behandeln, die Sie erwähnen.

Ich bin mir nicht sicher, wie weit zurück 'modern' ist hier, aber ich würde sagen, wenn Sie über die Leistung besorgt sind, ist dies ein Ort, sollten Sie nicht versuchen, für die Geschwindigkeit zu optimieren; eher für die Klarheit. Ein optimierender Compiler wird in der Regel eine schnellere Möglichkeit zur Verarbeitung von Vorgängen kennen als Sie.

+0

Danke! Ich werde dann etwas mehr Vertrauen in meinen Compiler setzen. :) – Lobs001

Verwandte Themen