Измерение размера объекта HttpSession - PullRequest
13 голосов
/ 28 октября 2009

Существует ли простой и понятный способ его измерения, кроме программного измерения размера каждого типа данных (из которого состоит каждый объект), хранимых в сеансе?

Ответы [ 3 ]

6 голосов
/ 28 октября 2009

MessAdmin позволяет вычислять размер HttpSession, хотя неясно, как вычисляет размер временных объектов .

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

Следует отметить, что размер сериализованного объекта сеанса связан с неточностью из-за изменений в кодировке символов - строки в Java хранятся в формате UTF-16, тогда как выходной поток может быть в другой кодировке. Подробнее о том, почему вычисление размера объекта в Java является проблемой, можно найти в этой статье JavaWorld .

2 голосов
/ 28 октября 2009

Здесь есть класс SessionSize , здесь , в котором есть функция, возвращающая размер переданного ему объекта HttpSession, части веб-частей Java lib.

1 голос
/ 28 октября 2009

Содержание сеанса должно быть Сериализуемым.Так что сериализуйте его и посмотрите размер результирующего байтового массива.

Он не равен размеру в памяти, но может использоваться как приблизительное представление о нем.

PS Обратите внимание, что переходные поля, если они есть, будут исключены.

...