anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Fr 19 Apr, 2024 00:21

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Do 09 Feb, 2006 13:30 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 21 Feb, 2005 17:26
Beiträge: 323
Wohnort: Köln
Ich hoffe, das passt hier rein, hat allerdings nichts mit Logd zu tun. ;)

Sind arrays allgemein performence kostend oder sind sie eher performence "günstig"?

Es gibt ja nun mehrere Möglichkeiten für eine bestimmte Zahl etwas ausgeben zu lassen.
z.b Ifabfragen
[php]If ($row['x']=='0'){
echo('Hallo Anpera');
} else if $row['x']=='1'){
echo('hallo Kevz');
} else if $row['x']=='2'){
echo('hallo xy');
}....[/php]

Das gleiche als array [php]$hallo = array(0=>'Hallo Anpera',1=>'Hallo kevz',2=>'Hallo xyz');
echo($hallo[$row['x']]);[/php]

Ist jetzt ein Beispiel, auch die Namen sind mal ganz schnell und wahlos gewählt. ist array da nun in der performence besser oder allgemein ic/case abfragen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 09 Feb, 2006 13:53 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Ich würde jetzt grob sagen, das untere ist schneller. Einfach aus der Hinsicht, weil du direkt nach einem Key fragst, und oben ist eben zu umständlich du machst erst zahlreiche If abfragen und und und... Du kannst falls ein Key nicht im Array vorhanden ist in_array benutzt wäre auch eine möglichkeit. Aber die untere möglichkeit ist nach der ansicht eig. schneller. Ansonsten mach mal nen Benchmark test ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 09 Feb, 2006 16:15 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 04 Dez, 2004 02:34
Beiträge: 825
Das zweite muss nicht schneller sein, man muss wissen, wie PHP den Speicher besetzt.
Also wie lange es dauert, das array im speicher abzulegen und ob ifs nicht doch schnelller sind..
Aber ich würde ausm Bauch 2 sagen..

Dem wofür gibt es sonst arrays? :P


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 09 Feb, 2006 17:27 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Jop. Arrays sind was tolles machen aber auch Deprimierent wenn man nicht mehr weiter kommt :lol:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do 09 Feb, 2006 18:56 
Offline
Großmeister
Großmeister

Registriert: Mi 15 Dez, 2004 00:41
Beiträge: 467
Wohnort: München
Das untere halte ich nicht für sonderlich schnell, allerdings ist das obere auch sehr schlecht. Statt "else if" sollte man immer "elseif" benutzen, da der Befehl speziell optimiert ist und (marginal) schneller läuft. Allerdings ist generell ab etwa 3 Fällen - wie im Beispiel - ein switch vorzuziehen.
Also hier:
[php]switch ($row['x']) {
case 1: echo 'blablubb'; break;
case 2: echo 'pizza'; break;
case 3: echo 'nix';
}
[/php]
Dabei erfolgt nur eine einzige Prüfung, der Sprung zum entsprechenden Fall ist sehr schnell. Die Lösung ist daher das Performanteste.

Die Speicherbelegung mit einem zusätzlichen Array wie im 2. Vorschlag würde ich übrigens generell vermeiden, wenn es nur um Performance geht.
Sinnvoll ist es dann, wenn es der Übersichtlichkeit dient (z.B. wenn es 30 gültige Fälle mit viel Code pro Fall gibt - ein switch ist da zwar toll, aber im Array sieht man sofort die möglichen Werte).

In diesen geringfügigen Regionen verwende ich eigentlich meist die übersichtlichste Lösung. Nur wenn die Übersicht bei mehreren Möglichkeiten gleichermaßen gut ist, ziehe ich die schnellste vor.

_________________
A bus station is where busses stop. A train station is where trains stop. On my desk there is a workstation...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 10 Feb, 2006 11:52 
Offline
Meister
Meister
Benutzeravatar

Registriert: Mo 21 Feb, 2005 17:26
Beiträge: 323
Wohnort: Köln
Ich danke euch für eure Ausführungen, ich denke nun bin ich ein klein wenig schlauer.
Mir geht es um Übersicht und Performence im gleichen Maße.
Gerade in Foren sind längere Ladezeiten nicht so toll und Add Ons könnten diese ja noch in die Höhe steigen lassen(die Ladezeiten), durch schlechte Programmierung.

Mfg Garlant


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 10 Feb, 2006 13:27 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 04 Dez, 2004 02:34
Beiträge: 825
Naja, das obrige macht nur einen nicht wahrnehmbaren unterschied :P


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 8 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum