Mailinglisten-Archive |
Niels Runge wrote:
> Hallo Julian,
>> Insgesamt sind ca. 300 Elemente auf 5 Dimensionen verteilt. Macht
>> es Sinn diesen Baum beim Login einmalig erstellen zu lassen und dann in
>> der $_SESSION zu speichern? Oder haltet Ihr den Geschwindigkeitsgewinn
>> für unerheblich?
>>
> zu groß Werte sollten nicht in der Session gespeichert werden.
> (habe es allerdings nie wirklich getestet, also vielleicht täusche ich
> mich auch)
>
> Du schreibst ja dass der Baum Benutzer bzw. sessionsabhängig ist, bei
> einem Projekt wo ähnliches
> gelöst werden sollte, habe ich es einfach mit var_export($var, TRUE)
> exportiert und dann gespeichert (als einfach Datei)
Da könntest du dann aber auch serialize() nehmen... Ich könnte mir
vorstellen, dass das schneller ist (hab' aber eigentlich keine Ahnung).
Und $SESSION macht auch nichts anderes, als die Variable in eine Datei
zu schreiben. Und wenn man eh schon $SESSION verwendet, dann kann man
auch dessen Funktionen benutzen.
Im Zweifelssfall dauert es nämlich lange die Datei zu öffnen und die
Sessiondatei muss sowieso geöffnet werden...
>
> Performancemässig war das eine akzeptable Lösung denke ich (auf dem
> Server gab es kein Memcache o.ä.)
>
> Die Überprüfung war dann einfach so ->
>
> function check($name, $time) {
> return file_exists(DIR_CACHE_DATA.$name) && (time() -
> filemtime(DIR_CACHE_DATA.$name) < $time);
> }
>
> Und $name hat sich dann ungefähr so zusammengesetzt ->
> $name =
> 'navigation_'.$_SESSION['user_id'].'_'.$_SESSION['andere_session_variable'];
>
> Gruß
> Niels
php::bar PHP Wiki - Listenarchive