PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : empty oder !empty


reinhardlange
04.02.2008, 15:46:03
Hallole,

allgemeine Frage: was ist schneller if-Abfrage mit "empty" oder die Umkehrung "!empty"?

... wenn i.d.R. die Variable gefüllt ist.

Vielen Dank !

Gruss Reinhard

rambi
04.02.2008, 16:09:25
Verwende immer die leichter zu lesende Variante!
Ansonsten, warum probierst du das nicht aus?

von wahsaga:
ForenpostingMitPerformancefrageBewertungsfaustregel:
Wer Fragen nach der Performance solcher Kinkerlitzchen stellt, der programmiert vermutlich noch nicht mal ansatzweise performant. Andernfalls, wenn er wirklich und zu Recht an einer Applikation arbeiten würde, bei der dieses Quentchen entscheidend ist, sollte er diese Frage gar nicht mehr stellen müssen.

reinhardlange
04.02.2008, 16:12:02
jo, schon klar - aber so tief stecke ich nicht drin, um diese Zeitunterschiede zu berechnen.

... also scheint es ja keinen Unterschied zu geben.

Vielen Dank !

Gruss Reinhard

rambi
04.02.2008, 17:47:55
Die Zeitdifferenz wird wirklich minimal sein. Performanceoptimierungen sind ohne Messungen nicht drin. Erst diese bringen die wirklichen Verplemperer ans Tageslicht. Erfahrungsgemäß doktert man sonst meist am völlig falschen Ende rum.
Oft: In SQL Statements und Schleifen läßt sich am meisten rausholen.

reinhardlange
04.02.2008, 20:50:22
ok, danke für die Info - war halt mal so ein Gedanke

Gruss Reinhard

defabricator
05.02.2008, 09:56:07
Wenn Du einen Flaschenhals in Deinen Skripten befürchtest, lass einen Profiler mitlaufen, der die Ausführungszeiten mitschreibt und dann lass einen Stresstest laufen.
Ich kann Dir jetzt nicht sagen, welcher Profiler und welcher Stresstest state-of-the-art sind, aber Du kannst ja mal bei http://xdebug.org/docs/profiler und http://curl-loader.sourceforge.net/ anfangen.

reinhardlange
05.02.2008, 09:59:19
... nö, Zeitprobleme mit den Scripten habe ich eigentlich nicht, da überschaubar.

Trotzdem vielen Dank für den Tipp - werde ich mir mal ansehen und ausprobieren.

Gruss Reinhard

meikel (†)
05.02.2008, 10:33:24
jo, schon klar - aber so tief stecke ich nicht drin, um diese Zeitunterschiede zu berechnen.
Brauchst Du das wirklich?

... also scheint es ja keinen Unterschied zu geben.
Natürlich gibt es einen Unterschied:
1. muß der Parser feststellen, daß da ein ! lauert
2. muß der Parser den Wert nach dem Typecasting negieren.

reinhardlange
05.02.2008, 11:10:27
hallole,

bei mir geht es um max. 25 Datensätze, die so geprüft werden sollen - ich hatte nur den Gedanken ... was ist, wenn .... (kommt aber nicht bei mir vor).

Vielen Dank!

Gruss Reinhard

defabricator
05.02.2008, 11:11:40
Na ja, der Effekt von 1. lässt sich mit apc mindern
Und an 2. hängt ja noch die Frage, ob es für php einen Unterschied macht, ob es einen Unterschied macht ob gleich der Block nach dem if ausgeführt wird oder der else branch.
Aber selbst wenn es Unterschiede gibt, reden wir hier glaube ich von esoterischen Größenordnungen.
edit: 25 Datensätze ...da wirst Du keine Unterschiede messen können. Nicht mit Krümmelkacke aufhalten.

meikel (†)
05.02.2008, 11:35:32
..., reden wir hier glaube ich von esoterischen Größenordnungen.
Jau!

Die schlechte Nachricht: sowas summiert sich.
Die Gute: es liegt meist mehr an den sinnfreien Schleifen, mit denen ein Server zum Wahnsinn getrieben wird.

Tumasch
19.02.2008, 15:14:02
ich schätze mal das wird so im rahmen von rund 2 nanosekunden laufen. mit anderen worten: scheissegal.

meikel (†)
23.02.2008, 02:16:19
ich schätze mal das wird so im rahmen von rund 2 nanosekunden laufen. mit anderen worten: scheissegal.
Ich rede nicht von der einsamen Windowskiste unter Deinem Schreibtisch, die nur von einem einsamen Client heimgesucht wird. :->

Tumasch
03.03.2008, 10:46:20
@meikel: ich meinte auch eher empty oder !empty ...

Logisch sind schlecht aufgebaute Schleifen performance- und Ressourcenkiller.

Mit etwas überlegen und twekaen lassen sich manche schleifen um 30% und mehr schneller machen.