Есть ли простой и простой способ измерения, кроме программного измерения размера каждого типа данных (из которого состоит каждый объект), сохраненного в сеансе?
Измерение размера объекта HttpSession
Ответ 1
MessAdmin позволяет вычислить размер HttpSession, хотя неясно, как он вычисляет размер переходных объектов.
Похоже, что получение приблизительного размера объекта HttpSession - это бесполезность в производстве, и, скорее всего, он получит более точный размер для контролируемой среды.
Следует отметить, что размер сериализованного объекта сеанса связан с неточностью из-за изменений в кодировке символов. Строки в Java хранятся в формате UTF-16, тогда как выходной поток может иметь другую кодировку. Более подробная информация о том, почему вычисление размера объекта в Java является проблемой, можно найти в этой статье JavaWorld.
Ответ 2
Здесь класс SessionSize здесь, у которого есть функция, чтобы вернуть размер переданного ему объекта HttpSession, часть Java Web Parts lib.
Ответ 3
Содержание сеанса должно быть Serializable. Поэтому сериализуйте его и посмотрите размер полученного массива байтов.
Он не равен размеру в памяти, но может использоваться как грубое представление.
P.S. Обратите внимание, что временные поля, если они есть, будут исключены.