2009-09-06 9 views

Respuesta

16
$size_of_session_estimate = strlen(serialize($_SESSION)); 

Ahora, esto es sólo una estimación, como el controlador de serialización es no se usa para serializar sesiones, pero también no será demasiado lejos.

Dicho esto, a menos que esté almacenando una cantidad tonta de datos en la sesión, probablemente no tenga que preocuparse por esto.

+0

+1 en el clavo, * y * muy rápido. – karim79

+0

Tengo curiosidad, pensé que el límite de tamaño de la sesión se basaba solo en tu memoria, ¿hay otros factores? Lo pregunto porque almaceno una gran cantidad de datos en las sesiones de usuario – JasonDavis

+0

Supongo que esto funciona porque strlen da la cantidad de caracteres. Y cada personaje tiene 1kb ... corrígeme si estoy equivocado. – Rahul

8

Si está utilizando Apache, eche un vistazo a su carpeta APACHE_ROOT/tmp y busque los archivos con el nombre sess_***********.

De lo contrario, tome el script desde here y llámelo utilizando array_size($_SESSION). Esto puede diferir ligeramente del valor exacto (dependiendo de la compresión/optimizaciones hechas por su módulo PHP).

+0

Tenga en cuenta que algunas configuraciones pueden almacenar sesiones en lugares distintos de/tmp. Tendrá que examinar su configuración de PHP para estar seguro. – Charles

+2

paste-it.net está desconectado, ¿tiene un enlace alternativo a su script? – rubo77

4

Este:

echo strlen(session_encode()); 

le dará la cantidad de espacio en disco utilizado por $ _SESSION (suponiendo session.save_handler es el valor por defecto archivos), ya que session_encode() devuelve una cadena idéntico a la cadena almacenada en el archivo de sesión.

También dará una mejor indicación de la cantidad de memoria utilizada, ya session_encode() añade menos de metadatos que serialize().

En una configuración por defecto de Apache, se puede ver los datos de la sesión tal como se almacena en el disco con:

session_write_close(); 
echo file_get_contents(sys_get_temp_dir() . 'sess_' . session_id()); 
+1

"Debería ser la respuesta aceptada" –

Cuestiones relacionadas