PHP: EPG-Daten performant auslesen

  • Hallo zusammen,


    ich versuche grad die EPG-Daten für bestimmte Kanäle auszulesen. Ich habe mal eben quick and dirty folgendes versucht:



    Leider dauert die Ausführung (bei mir sind es 9 Sender) ca. 10 Sekunden, was nicht wirklich als performant bezeichnet werden kann. Was gibt es für Möglichkeiten dies zu beschleunigen?


    - Geht es per Direktzugriff auf die epg.data schneller? Ich müsste ja auch die komplette Datei "durchsuchen".
    - Zunächst alles in eine MySQL packen - dann geht es sicher viel schneller, aber die redundante Datenhaltung gefällt mir nicht.


    Gruß,


    Matthias

  • Das php als solches ist ohne unnötige Flaschenhälse.
    Minimale Verbesserungen der Performance (wenigstens beim Parsen) gibts, wenn Du anstelle von doppelten Anführungszeichen die einfachen verwendest: " -> '
    Bei doppelten wird noch versucht, die Stringinhalte nach Variablen zu parsen, Du konkatenierst aber ohnehin (performanter) mit "." :]


    Zeitkiller ist hier mit Sicherheit der svdrpsend Befehl.
    Wenn Du kannst, arbeite lieber mit dem File direkt!

  • Södele. Ich habe jetzt mal einen schnellen Versuch mit file gemacht.



    Ist schon schneller (8 Sekunden), aber auch nicht wirklich performant (ich liebe dieses Wort). Außerdem werden hier nur die Zeilen ausgegeben, in welchen die channel-id auftauchen. Das parsen der eigentlichen EPG-Daten geschieht hier, im Gegensatz zu oben, noch nicht.


    Oder ist das nicht der richtige Ansatz zum Durchsuchen einer Datei?

  • Dateien einlesen würde ich ganz pragmatisch mit http://de.php.net/manual/de/function.file.php machen...


    EDIT:
    Oha, hast Du mit der channels.conf ja eh schon gemacht...
    warum nicht auch mit epg.data?


    EDIT2:
    Dein Problem scheint woanders zu sein:


    Code
    thomas@sauron ~ $ l -h epg.data
    -rw-r--r-- 1 thomas thomas 18M Mar  9 15:19 epg.data
    thomas@sauron ~ $ l -h channels.conf
    -rw-r--r-- 1 thomas thomas 101K Mar  9 15:19 channels.conf
    thomas@sauron ~ $ php <read.php
    C S19.2E-1-1079-28006 ZDF
    <br>C S19.2E-1-1101-28106 Das Erste
    <br>0.690258026123thomas@sauron ~ $

  • Die Datei ist, wie bei dir auch, knapp 20MB groß, und das will ich nicht alles in den Speicher hauen.


    mmhh... deine erste Programmgruppe besteht nur aus ARD und ZDF. Dein Rechner ist auch etwas schneller als meiner - PIII700. Versuch das ganze mal bitte mit ein paar mehr Sendern.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!