Fabulit: Performance nach Lesbarkeitsoptimierung

Beitrag lesen

Moin,

ich bin eher zufällig über Perfomance-Schwankungen gestolpert, die mir nicht so recht einleuchten. Es geht um den Vergleich zwischen:

Variante A

if(bedingung1) {  
	if(bedingung2) {  
		...  
	}  
}  

Variante B

if(bedingung1 && bedingung2) {  
	...  
}  

Ich bin bisher davon ausgegangen, dass es sich um nahezu gleichwertige Abfragen handelt, aber Variante B war in meinem Szenario 5 - 8 % langsamer.

Zusätzlich lagere ich komplexe und wiederkehrende Prüfungen auch gern in eigene Funktionen aus:

if(pruefe_bedingungen(bedingung1, bedingung2)) {  
	...  
}  
function pruefe_bedingungen(bedingung1, bedingung2) {  
	if(bedingung1) {  
		if(bedingung2) {  
			return true;  
		}  
	}  
	return false;	  
}  

Dies hat zur Folge, dass die Ausführungszeit sich _verdreifacht_. Ok, ich habe dadurch eine zusätzliche if-Abfrage und einen zusätzlichen Funktionsaufruf eingebaut, aber dass die Perfomance derart betroffen ist, betrübt mich. Ich gewinne grade den Eindruck, dass meine Optimierungen zur Lesbarkeit und Wartbarkeit des Codes immer mit Performance-Einbußen einhergehen könnten. Und auf meine Intuition bezüglich der Perfomance kann ich mich auch nicht verlassen.

Kann bitte jemand (mit einfachen Worten) etwas Klarheit in meine Verwirrung bringen. Oder muss man wirklich verstehen was hinter den Kulissen passiert, um die Perfomance einschätzen zu können?

Gruß Fabulit