[Php-it] dimensione file sessione
Cristiano Verondini
cverondini at deis.unibo.it
Wed Mar 14 12:20:34 CET 2007
> in base alla vostra esperienza, qual è una dimensione "sana" per un
> file di sessione? Qual è il limite massimo ragionevole?
> Devo valutare se inserire un questionario (domande e risposte) in
> sessione, per evitare di dover fare una query via ajax ad ogni domanda
> (la sincronia delle domande è pilotata da una traccia video).
> Mettendo tutto in sessione, risparmio le query al db.
> Non ho ancora dati sulle dimensioni reali dei questionari, ma
> potrebbero benissimo essere sui 20-25K di testo.
In realtà non esiste una dimensione 'sana', se non limitatamente allo
spazio che hai a disposizione ed alle prestazioni. File di sessione molto
grandi richiedono più tempo per essere parsati, ma questo è ovvio.
E' altresì ovvio che alla tua applicazione quei dati servono, quindi
vanno memorizzati da qualche parte.
Il DB è ovviamente meno performante, più scalabile, ha il problema di
dover gestire 'a mano' il garbage collection.
Personalmente userei una soluzione basata su file, ma non direttamente
in sessione. Questo perché avere gli oggetti in sessione ti obbliga a:
(1) leggere sempre i dati anche se in quel momento non ne hai
bisogno
(2) dovre definire tutte le classi *prima* dell'apertura della
sessione
Ora, in un'applicazione web complessa, non è detto che tu abbia sempre
bisogno di accedere a tutti i dati contenuti in sessione, ma per la (2) di
cui sopra sei costretto a dichiarare tutte le possibili classi che possono
comparire nella sessione. Dichiarare significa parsare i corrispondenti file
sorgente, quindi consumo di tempo/memoria anche se poi non li utilizzerai.
Le soluzioni possibili sono due:
(1) memorizzazione in sessione solo di dati 'primitivi'
(2) memorizzazione in sessione di un identificativo che permetta di
risalire ad un file nel quale è serializzato l'oggetto
Nel caso (1) ovviamente i tuoi oggetti useranno il tipo primitivo
(solitamente un array) per la memorizzazione dello stato. La soluzione (2) è
quella che preferisco.
Cris
--
Cristiano Verondini
http://www.verondini.it --- [ICQ: 114 190]
More information about the Php-it
mailing list