Mailinglisten-Archive |
Norbert Pfeiffer wrote: > Hai Sebastian, > >> wie schnell ist denn get_browser()? >> > gemessen: > > 33,383 ms/loop > 33,345 ms/get_browser > > d.h. get_browser(); ist einfach zu langsam ... :-(( > get_browser holt ja nicht nur die Information, welcher Browser benutzt wurde, sondern auch was er alles unterstützt etc. aus dieser browsecap.ini. Wieder einmal sind die Kommentare in der Dokumentation ziemlich interessant: We have experienced that without querying for browser data our scripts would run 120-130% faster. the explanation is that over 200kb long file (browscap.ini) has to be loaded and parsed everytime someone access any page (we need browser results on all pages). Meine Empfehlung ist, wenn wirklich nur der Name des Browsers benötigt wird, einige der vielen Scripts aus dem Kommentarbereich (http://ch2.php.net/get_browser) auf die Geschwindigkeit testen und das beste/schnellste davon verwenden. Ich bin mir ziemlich sicher das ist um ein vielfaches schneller, da diese browsecap.ini nicht verarbeitet werden muss Falls das nicht möglich ist, da zusätzliche Informationen von get_browser benötigt werden, ist ein sinnvolles Caching ev. eine Alternative. Zum Beispiel alle get_browser Ergebnisse in einem Array speichern, mit dem Browser-String bzw. dessen Hash als Schlüssel. Und dann bei jedem Aufruf vor dem get_browser prüfen ob der Schlüssel schon vorhanden ist und wenn ja mit dem zwischengespeicherten Objekt weitermachen. Gruss Sascha
php::bar PHP Wiki - Listenarchive