phpbar.de logo

Mailinglisten-Archive

[php] wie performanter gestalten

[php] wie performanter gestalten

Sascha Grossenbacher saschagros at bluewin.ch
Die Aug 1 11:21:08 CEST 2006


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