Manuel: Geschwindigkeitsfrage

Hi,

ich stehe grade vor der Frage, welche Methode für Konfigurationsdateien am sinnvollsten und schnellsten ist.

Zur Auswahl stehen folgende Arten:

1. Config datei (z.B. $wert = "Inhalt";)
2. XML
3. mySQL

Da ich momentan nur ca. 10 Werte in der COnfig hab, erkenne ich bei einem Benchmark leider keine Unterschiede, da es aber später viele Punkte weren können, ist die Geschwindigkeitsfrage durchaus relevant.

Deshalb meine Frage, worauf sollte ich aufbauen? Ich Arbeite mit PHP5 und mySQL 4.

thx4hlp

Gruss
Manuel

  1. Hello,

    ich stehe grade vor der Frage, welche Methode für Konfigurationsdateien am sinnvollsten und schnellsten ist.

    Zur Auswahl stehen folgende Arten:

    1. Config datei (z.B. $wert = "Inhalt";)
    2. XML
    3. mySQL

    Dann schau Dir mal http://de.php.net/manual/de/function.parse-ini-file.php an.

    Allerdings kann diese Funktion keine mehrzeiligen Paramter verkraften. Am Zeilenende-Zeichen idt der Parameter zu Ende.

    Ich hatte mal versucht, das für ein Mini-Hilfesystem zu verwenden. Dafür ist es aber nicht geeignet.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  2. Hallo!

    Zur Auswahl stehen folgende Arten:

    1. Config datei (z.B. $wert = "Inhalt";)
    2. XML
    3. mySQL

    Nr. 1 sollte am schnellsten sein, bei Verwendung eines Opcode-Cache ist es noch nichtmal nötig die Konfigurations-Datei bei jedem Request von der Platte zu laden, zu parsen und zu "kompilieren".

    Nr. 2 benötigt zum Lesen der Konfigurations-Datei eine zusätzliche/externe XML-Erweiterung - und das bei jedem Request.

    Nr. 3 benötigt entsprechend bei jedem Request Zugriff über die MySQL-Extension per Socket-Verbindung auf einen Datenbank-Server.

    Allerdings brauchst Du schon ne ganze Menge Requests um diesen Unterschied zu merken. Und normalerweise gibt es dann andere Stellen im Script, die erheblich mehr Zeit benötigen.

    Ich würde das nehmen was für Dich am einfachsten ist. Ich persönlich kann mich allerdings nicht wirklich mit dem Gedanken anfreunden, Konfigurationsdaten in XML zu speichern. Selbst bei Java-Frameworks verstehe ich das nicht, wobei Du dort gegenüber PHP wenigstens den Vorteil hast, das die Datei nur einmalig beim Start eingelesen werden muss.

    Grüße
    Andreas

    --
    SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
    1. Hi,

      Ich würde das nehmen was für Dich am einfachsten ist. Ich persönlich kann mich allerdings nicht wirklich mit dem Gedanken anfreunden, Konfigurationsdaten in XML zu speichern. Selbst bei Java-Frameworks verstehe ich das nicht, wobei Du dort gegenüber PHP wenigstens den Vorteil hast, das die Datei nur einmalig beim Start eingelesen werden muss.

      Danke für die Antworten. Ich schau mir mal an, was am einfachsten ist, wenn man per Script die Config ändern will.

      Die Methode, mit PHP eine ini-Datei zu lesen gefällt mir auch gut. Ich denke, dann werd ich das mal näher ins Auge fassen.

      MfG
      Manuel

  3. Hi

    Da ich momentan nur ca. 10 Werte in der COnfig hab, erkenne ich bei einem Benchmark leider keine Unterschiede, da es aber später viele Punkte weren können, ist die Geschwindigkeitsfrage durchaus relevant.

    Ich bezweifle, ob du jemals so viele Parameter hast, dass das Auslesen mittels verschiedenen Methoden relevante Zeitunterschiede mit sich bringt. Eher der "Overhead", also Datei öffnen, Datenbankverbindung, Parsen etc. dürfte Performance kosten.

    Allgemein lege ich dir stark ans Herz, die Konfiguration gut zu kapseln, d.h.: Du fragst die Parameter im Programm mittels einer Funktion auf - oder implementierst die Config gleich als Klasse. So kannst du jederzeit die Technologie ändern, ohne den ganzen Code durchforsten zu müssen.
    (Ich denke das hast du sowieso schon gewusst ;-) )

    Gruss

    Michael