我可以在Java Session中存储多少数据?

时间:2011-11-15 09:09:08

标签: java session tomcat memory

我们正在使用Tomcat / J2EE应用程序。

在这个应用程序中,我们在会话中存储了大量数据,我想知道我们可以存储多少数据而没有任何问题。

最低限制是什么? Tomcat的记忆? JVM?

如何计算我是否可以存储200k字符串?

2 个答案:

答案 0 :(得分:2)

对于#1 - 您可以存储与分配给JVM的堆大小一样多的数据。当然,tomcat在JVM中运行,因此它也将使用分配的部分内存。

对于#2 - 它实际上取决于字符串的大小 - 每个unicode字符需要2个字节。取字符串的平均大小,乘以200k,然后确保分配了足够的内存。

答案 1 :(得分:1)

Tomcat在JVM中运行。因此,如果您有32位jre,则最大堆大小约为1,7Gb。如果你想要更多,你应该切换到64位jre。

关于字符串分配,内部java字符编码是Unicode,所以我认为它是UTF-8。为了节省空间,您可以使用zip压缩这些字符串并将其保存为文件。