13

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

4

3 回答 3

6

MessAdmin允许您计算 HttpSession 大小,但不清楚它如何计算瞬态对象的大小

看起来,获取 HttpSession 对象的近似大小在生产中是徒劳的,并且可能会在受控环境中获得更准确的大小。

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

于 2009-10-28T08:47:19.667 回答
2

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

于 2009-10-27T21:11:06.727 回答
1

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

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

PS 请注意,临时字段(如果有)将被排除在外。

于 2009-10-27T21:16:23.190 回答