Arx: Geschwindigkeitszuwachs durch Sessions?

Hallo Selfer,

Habe da so eine Schnapsidee, von der ich nicht weiß, was ich von ihr halten soll. Deshalb bitte mal eure Meinung zu folgendem Vorgehen:

Eine Website besteht aus einer einzigen index.php die sich die gewünschten Inhalte (angefordert mit index.php?content=irgendwas) aus einer contents.txt (eine Zeile = eine Seite, d. h. eine Angabe bei index.php?content=) lädt.

-> Brächte es mir nun einen deutlichen Geschwindigkeitsvorteil, die contents.txt nur beim ersten Aufruf der index.php auszulesen und die Daten in einer Session-Variablen zu speichern, um sie für weitere Seitenaufrufe von dort zu beziehen?

Gruß
Arx

--
Do it yourSELF 'cause SELFmade is bestmade.
Selfcode: ie:% fl:( br:^ va:} ls:[ fo:) rl:( n4:{ ss:| de:> js:| ch:? mo:} zu:)
Selfcode entschlüsseln: http://peter.in-berlin.de/projekte/selfcode/
Selfcode-Info: http://emmanuel.dammerer.at/selfcode.html
Für alle Forum-Neulinge:
1.http://de.selfhtml.org/
2.http://suche.de.selfhtml.org/ -> http://forum.de.selfhtml.org/archiv/
3.http://forum.de.selfhtml.org/faq/ -> http://forum.de.selfhtml.org/cgi-bin/fo_post
  1. Moin!

    Habe da so eine Schnapsidee, von der ich nicht weiß, was ich von ihr halten soll. Deshalb bitte mal eure Meinung zu folgendem Vorgehen:

    Schnapsidee trifft es ganz gut.

    -> Brächte es mir nun einen deutlichen Geschwindigkeitsvorteil, die contents.txt nur beim ersten Aufruf der index.php auszulesen und die Daten in einer Session-Variablen zu speichern, um sie für weitere Seitenaufrufe von dort zu beziehen?

    Ich denke nicht. Denn die Session-Variablen werden auch nur in einer Textdatei gespeichert. Du belastest deinen Webserver aber IMO unnötig mit Arbeit, die er schneller anders erledigen könnte, wenn du bessere Speicherstrategien anwenden würdest.

    Das Abspeichern allen Contents in einer Textdatei beispielsweise ist schlecht. Da muß der Server immer soweit die Datei einlesen, bis der gewünschte Content gefunden wurde - das ist durchschnittlich die halbe Dateigröße.

    Mit Sessions wird mengenmäßig jedesmal die gesamte Dateigröße eingelesen.

    Würdest du die einzelnen Seiten auf individuelle Dateien verteilen, könnte das Dateisystem seine Stärke ausspielen, und es müßte durchschnittlich nur die Menge einer Contentseite gelesen werden.

    Die Unterschiede sind bei 10 Contentseiten noch gering. Bei hundert Seiten werden sie wohl so langsam relevant und bedenkenswert.

    - Sven Rautenberg

    1. Hello,

      Die Unterschiede sind bei 10 Contentseiten noch gering. Bei hundert Seiten werden sie wohl so langsam relevant und bedenkenswert.

      Dazu sind ja die Versuche, die Dennis und ich durchgeführt haben zum Thema "Speichern in Flatfiles" ganz interessant, auch wenn sie nicht "wissenschaftlich" sondern nur praxisorientiert sind.

      Siehe Thread ganz am Ende des Forums...

      Die Dateisysteme sind im Grunde ja eigentlich auch nichts anderes, als eine gaaaanz große Datei, die nach bestimmten Regeln organisert ist. Und die Organisation ist i.d.R. schon ganz gut.

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Hi,

        Dazu sind ja die Versuche, die Dennis und ich durchgeführt haben zum Thema "Speichern in Flatfiles" ganz interessant, auch wenn sie nicht "wissenschaftlich" sondern nur praxisorientiert sind.

        Siehe Thread ganz am Ende des Forums...

        Danke! Das ist genau das richtige! [pref:t=82138&m=485965]

        Gruß
        Arx

        --
        Do it yourSELF 'cause SELFmade is bestmade.
        Selfcode: ie:% fl:( br:^ va:} ls:[ fo:) rl:( n4:{ ss:| de:> js:| ch:? mo:} zu:)
        Selfcode entschlüsseln: http://peter.in-berlin.de/projekte/selfcode/
        Selfcode-Info: http://emmanuel.dammerer.at/selfcode.html
        Für alle Forum-Neulinge:
        1.http://de.selfhtml.org/
        2.http://suche.de.selfhtml.org/ -> http://forum.de.selfhtml.org/archiv/
        3.http://forum.de.selfhtml.org/faq/ -> http://forum.de.selfhtml.org/cgi-bin/fo_post
    2. Hi!

      Schnapsidee trifft es ganz gut.

      ja ;-)

      -> Brächte es mir nun einen deutlichen Geschwindigkeitsvorteil, die contents.txt nur beim ersten Aufruf der index.php auszulesen und die Daten in einer Session-Variablen zu speichern, um sie für weitere Seitenaufrufe von dort zu beziehen?

      Ich denke nicht. Denn die Session-Variablen werden auch nur in einer Textdatei gespeichert.

      "Um für die Speicherung von Sessions die shared memory allocation (mm) zu benutzen, müssen Sie PHP mit der Option --with-mm[=DIR] konfigurieren."

      session.save_handler = mm

      Naja, ist aber etwas kritisch, bei mir ist das nicht wirklich sauber gelaufen.

      Und solche Späße lohnen sich auch nur, wenn man sich dadurch wirklich teure Funksionsaufrufe spart, ein bisschen was aus ein paar Text-Dateiel zu lesen ist nicht wirklich aufwändig.

      Mit Sessions wird mengenmäßig jedesmal die gesamte Dateigröße eingelesen.

      Jepp, und dadurch ist das wirklich eher kontraproduktiv.

      Ich verwende zum Cachen heute nach Möglichkeit eigentlich meist den memcached: http://pecl.php.net/package/memcache, das funktioniert wunderbar, und lässt sich im Zweifel auch auf mehrere Rechner verteilen und von anderen Rechnern aus abfragen. Nur wird das wohl kaum ein Provider installiert haben... und im aktuellen Fall auch nicht wirklich empfehlenmswert.

      Grüße
      Andreas

      --
      SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/
  2. Sup!

    -> Brächte es mir nun einen deutlichen Geschwindigkeitsvorteil, die contents.txt nur beim ersten Aufruf der index.php auszulesen und die Daten in einer Session-Variablen zu speichern, um sie für weitere Seitenaufrufe von dort zu beziehen?

    Du könntest Sie ja auch im Skript hardcoden, die contents.txt, oder aus einem Shared-Memory-Segment beziehen - das spart dann Speicher bei parallelen Sessions.

    Gruesse,

    Bio

    --
    And the beast shall come forth surrounded by a roiling cloud of vengeance. The house of the unbelievers shall be razed and they shall be scorched to the earth. Their tags shall blink until the end of days.