Hackerboard WikiHaboBlog

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Benchmark

Diskussion: Benchmark im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Hi! Ich modifiziere hier gerade ein Programm von mir. Damals habe ich das Skript anders geschrieben als ich es heute ...

Antwort
Alt 10.03.10, 13:37   #1 (permalink)
Senior Member
 
Benutzerbild von sw33tlull4by
 
Registriert seit: 12.06.07
sw33tlull4by Leistung: Facit NTK
Likes: 0
Standard Benchmark


Hi!
Ich modifiziere hier gerade ein Programm von mir.
Damals habe ich das Skript anders geschrieben als ich es heute machen würde, was mich zu einer interessanten Frage geführt hat:

Wenn ich Fallunterscheidungen in den einzelnen PHP-dateien mache, was ist schneller
if(){}else if(){}else{}

oder
if(){...exit();}if(){...exit()} .....

mfg

sw33t

__________________
Nur die Schwachen klammern sich an die Moral.

Kill my daemons and my angels will follow them.
sw33tlull4by ist offline   Mit Zitat antworten
Alt 10.03.10, 15:24   #2 (permalink)
 
Registriert seit: 05.09.07
Garfield Leistung: Z3
Likes: 0
Standard

Ich würde auf den ersten Blick sagen: Beides gleich schnell. Else-(if) werden nicht weiter ausgewertet, sobald irgendeine Bedingung erfüllt worden ist.
Du kannst das ja mal in einer Schleife mit paar Hunderttausend Durchgängen starten - aber ich schätze, Codeoptimierung findet wo anders statt ;-)
Garfield ist offline   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 10.03.10, 18:10   #3 (permalink)
Member of Honour
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 60
Standard

viel größere performance killer sind zb geschichten wie

PHP-Code:
$array_mit_einer_millionen_eintägen;
for (
$i 0$i count($array_mit_einer_millionen_einträgen); $i++) 
weil hier das count jedes mal ausgeführt wird...

sauberer:
PHP-Code:
$array_mit_einer_millionen_eintägen;
for (
$i 0,$k=count($array_mit_einer_millionen_einträgen); $i $k;  $i++) 
oder unnötig viele sql abfragen, die immer das selbe wissen wollen. kann sehr schnell bei fukntionen wie zb ob nen benutzer entsprechende rechte für irgendwas besitzt.
wenn dann das ganze hasRights() abgefragt wird und da nen query abgesetzt wird. und dann in ner schleife für 100 durchgänge wird hasRights() aufgerufen wird, hat man mal eben 100 queries rausgehauen, ohne das man das direkt sieht

auch blöd.

sone if then verschachtelungen machen da kaum was aus.
was man da höchstens noc machen kann...

statt
PHP-Code:
function foobar() {
  if (
is_int($i)) {
    return 
true;
  } else {
    return 
false;
  }


PHP-Code:
function foobar() {
    return 
is_int($i);

__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Alt 10.03.10, 19:13   #4 (permalink)
Senior Member
Themenstarter
 
Benutzerbild von sw33tlull4by
 
Registriert seit: 12.06.07
sw33tlull4by Leistung: Facit NTK
Likes: 0
Standard

Ja das mit der Codeoptimierung hab ich mir fast gedacht.
Das PHP nicht optimiert, wie zB das for(){}-Beispiel oder kein Loopunrolling macht habe ich auch mal schmerzlich selbst rausfinden müssen.

Mein Augenmerk lag auch eher auf dem Interpreter und ich habe zwar Benchmarks gefunden aber halt nichts zu meiner Frage, weil wenn ein Project aus mehreren dutzen Dateien und ca. 3000 Zeilen Code besteht fängt es langsam an haarig zu werden, zumal, die ganze if-else verschachtelei mit mehreren if abfragen war damals schon ziemlich,nervend und da hab ich mal den Code von nem Kumpel gesehen der das alles mit exit()gelöst hat, ist ja auch um einiges einfacher und da dachte ich halt es gibt einen unterschied, zumindest in der Performance.

Danke für die Antworten.
mfg
sw33t
__________________
Nur die Schwachen klammern sich an die Moral.

Kill my daemons and my angels will follow them.
sw33tlull4by ist offline   Mit Zitat antworten
Antwort
   

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » PHP Benchmark
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61