测量HttpSession对象的大小

时间:2009-10-27 21:04:04

标签: java tomcat httpsession

除了以编程方式测量存储在会话中的每种数据类型(由每个对象组成)的大小之外,还有一种简洁的方法来测量它吗?

3 个答案:

答案 0 :(得分:6)

MessAdmin允许您计算HttpSession大小,但不清楚它是如何calculates the size of transient objects

看来,获得HttpSession对象的近似大小是一项徒劳无益的生产练习,并且可能会为受控环境获得更准确的大小。

需要注意的一点是,由于字符编码的变化,序列化会话对象的大小必然不准确 - Java中的字符串以UTF-16格式存储,而输出流可能采用不同的编码。有关为什么在Java中计算对象大小的更多细节是一个问题,可以在JavaWorld article中找到。

答案 1 :(得分:2)

有一个SessionSize类here,它有一个函数来返回传递给它的HttpSession对象的大小,它是Java Web Parts lib的一部分。

答案 2 :(得分:1)

会话内容必须是可序列化的。因此序列化它并查看生成的字节数组的大小。

它不等于内存中的大小,但可以用作它的粗略表示。

P.S。请注意,将排除瞬态字段(如果有)。