Mailinglisten-Archive |
Norbert Pfeiffer wrote: > Als echtes Nadeloehr hat sich die Funktion get_browser() erwiesen, > womit es ein echtes PHP-Problem geworden ist. Es sieht so aus, als > ob get_browser() bei jedem Aufruf, die komplette Browser.ini neu > von der Festplatte liest. Anders kann ich mir die 0.2 Sekunden, > die die Funktion verbruzelt nicht erklaeren. > Das diese Funktion genau das macht und extrem langsam ist, steht ja auch in den Kommentaren in der Dokumentation. Wenn du bei PHP bleiben willst, würde ich wie schon vorgeschlagen wurde, diese browscap.ini in eine Datenbank zu importieren. Ausserdem gehe ich davon aus, das ein paar hundert dieser UA-Strings den grössten Teil der Nutzer/Aufrufe ausmachen, da werden mit Sicherheit Unmengen an Exoten dabei sein. Daher dürfte es sinnvoll sein, mit ein paar Testläufen die vielleicht 1000 häufigsten Strings irgendwo zu cachen und nur noch für die seltenen eine DB-Abfrage abzusetzen. Falls das auch nicht schnell genug sein sollte, muss man entweder die Logs auf mehrere Server verteilen oder das Ganze in C oder einer ähnlich schnellen Sprache implementieren. Ausserdem stellt sich die Frage, ob es Sinn macht, diese Daten in einer DB zu speichern, wenn der Kunde nämlich z.B. Stunden-/Tages-/Monate-/Jahresstatistiken haben will, entstehen da wohl innert kurzer Zeit richtig grosse Datenmengen. Eine Alternative dazu wäre es direkt die HTML/XML/CSV-Statistiken zu genieren, wie das die handelsübliche Log-Analyser auch machen. Gruss Sascha
php::bar PHP Wiki - Listenarchive