PHP Optimierungsfragen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP Optimierungsfragen

    Hi, arbeite schon ne weile an nem BrowserGame,
    da ich jetzt einiges umarbeite wollte ich mal ein paar kleine unklarheiten von mir beseitigen
    und hoffe das mir wer weiterhelfen kann.

    *) Welche notation ist besser, wenn ich nen "normalen" Text brauche ? mit ' oder mit "
    *) Ist es besser globale Variablen in der Config zu verwenden oder oll ich die lieber mit define verwenden
    da ich bei define aber auch alle Texte dann zusammen fügen muß (kann da ja kein "test $test" mehr verwenden
    *) wie ist es besser texte zusammen zubauen per "test $test" oder mit "test ".$test
    *) Ich muß einer Funktion 6 variabeln übergeben, ist es besser die einzeln zu übergeben oder per Array ?
    *) werden bei php eigentlich Abfragen optimiert (wenn ich ein oder habe, das die zweite Abfrage nur ausgeführt wird, wenn die erste nicht TRUE ist ?)
    *) gibt es einen unterschied, ob ich ne funktion aus ner klasse aufrufe oder eine globale ?
    *) wenn ich viele Daten in nem Array speicher ist es besser
    $array[$ptr]['id'] = $id;
    $array[$ptr]['data'] = $data;
    $ptr++;

    oder
    $array[$id]['data'] = $data;

    spezielle dann für das druchgehen der daten (Also mit "normalen" for oder mit foreach)
    *) wenn ich nen vergleich habe wie $action=='a' wird das textmässig verglichen oder per ordzahl

    mySQL :
    *) Wenn ich prüfen will ob ein Datensatz existiert, was ist besser
    SELECT COUNT(*) FROM .....
    SELECT ID FROM ....
    und dann mit mysql_num_rows($sql);

    gibt es sonst noch sachen, wo man einige millisekunden aus dem script rausholen kann ?

    dass ganze wird dann noch mit eAcclerator (glaub heisst so) "compiliert" also kann es sein, dass das eine oder andere noch optimeirt wird oder ?

    gruss
    sn00py

  • #2
    <<gibt es sonst noch sachen, wo man einige millisekunden aus dem script rausholen kann ?>>
    microtime()
    und alle deine Fragen lassen sich mit dieser function beantworten.
    Slava
    bituniverse.com

    Kommentar


    • #3
      Srings in einfachen Anführungszeichen werden etwas schneller verarbeitet.
      Und ja, if Bedingungen werden optimiert!
      Globale Variablen sollte man vermeiden.

      Ansonsten, die paar milli Sekunden, naja...

      Wichtiger ist wohl lesbarkeit!!
      Auch nach Jahren sollte man durch den Code noch durchsteigen können. Evtl. muß ja auch noch ein Nachfolger damit arbeiten.
      Wir werden alle sterben

      Kommentar


      • #4
        wegen der Lesbarkeit ist
        "test".$test besser als "test $test"

        Kommentar


        • #5
          Original geschrieben von combie
          Srings in einfachen Anführungszeichen werden etwas schneller
          nicht wirklich, in der Theorie sollte es so sein, in der Praxis ist es das aber nicht immer ... man nehme einfach seine Vorliebe


          Original geschrieben von sn00py
          *) Ich muß einer Funktion 6 variabeln übergeben, ist es besser die einzeln zu übergeben oder per Array ?
          mach das, was dem Sinn entspricht

          *) werden bei php eigentlich Abfragen optimiert (wenn ich ein oder habe, das die zweite Abfrage nur ausgeführt wird, wenn die erste nicht TRUE ist ?)
          ja

          *) gibt es einen unterschied, ob ich ne funktion aus ner klasse aufrufe oder eine globale ?
          Stichwort Kapselung
          Für genauere Antworten musst du deine Frage so stellen, dass ich sie versteht :P

          *) wenn ich viele Daten in nem Array speicher ist es besser
          $array[$ptr]['id'] = $id;
          $array[$ptr]['data'] = $data;
          $ptr++;

          oder
          $array[$id]['data'] = $data;

          spezielle dann für das druchgehen der daten (Also mit "normalen" for oder mit foreach)
          Keine Ahnung was du willst, das sieht irgendwie nach kaputter Array-Struktur aus...

          *) wenn ich nen vergleich habe wie $action=='a' wird das textmässig verglichen oder per ordzahl
          keine Ahnung, ist aber in den meisten Fällen auch nicht wichtig. Die Frage ist, warum macht es bei dir einen Unterschied?

          mySQL :
          *) Wenn ich prüfen will ob ein Datensatz existiert, was ist besser
          SELECT COUNT(*) FROM .....
          SELECT ID FROM ....
          und dann mit mysql_num_rows($sql);
          ich würde count nehmen

          gibt es sonst noch sachen, wo man einige millisekunden aus dem script rausholen kann ?
          ++$i
          statt
          $i++
          (verändert natürlich auch den Sinn)

          for ($i = 0, $count = count(array); $i < $count, ++$i)
          statt
          for ($i = 0; $i < count($array), ++$i)
          (sofern sich die Anzahl der Elemente nicht im for ändert. Hintergrund ist, dass der zweite Ausdruck bei jedem Schleifendurchgang neu ausgewertet wird, bei zweiter Möglichkeit, wird also pro Schleifenaufruf einmal count() aufgerufen...reichlich unperformant)

          dass ganze wird dann noch mit eAcclerator (glaub heisst so) "compiliert" also kann es sein, dass das eine oder andere noch optimeirt wird oder ?
          kann, aber afaik spielt der eA mehr mit bincache als mit Optimierungen. Manual davon sollte mehr Auskunft geben

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar

          Lädt...
          X