Может ли эхо размер СЕССИИ?

Я не знаю, слишком ли велики мои сеансы. Есть ли способ увидеть размер сеанса. Благодаря, Рахул

Ответ 1

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

Теперь это просто оценка, так как обработчик сериализации не используется для сериализации сеансов, но он также не будет слишком далеко.

При этом, если вы не храните глупое количество данных в сеансе, вам, вероятно, не нужно беспокоиться об этом.

Ответ 2

Если вы используете Apache, загляните в свою папку APACHE_ROOT/tmp и найдите файлы с именем sess_***********.

В противном случае возьмите script из здесь и вызовите его с помощью array_size($_SESSION). Это может немного отличаться от точного значения (в зависимости от сжатия/оптимизации, выполняемого вашим модулем PHP).

Ответ 3

Это:

echo strlen(session_encode());

предоставит вам объем дискового пространства, используемого $_SESSION (предполагая, что session.save_handler является файлом значений по умолчанию), поскольку session_encode() возвращает строку, идентичную строке, хранящейся в файле сеанса.

Он также даст лучшее представление о количестве используемой памяти, поскольку session_encode() добавляет меньше метаданных, чем serialize().

При установке Apache по умолчанию вы можете видеть данные сеанса, хранящиеся на диске, с помощью:

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