Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在Java会话中存储多少数据?_Java_Session_Tomcat_Memory - Fatal编程技术网

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

我可以在Java会话中存储多少数据?,java,session,tomcat,memory,Java,Session,Tomcat,Memory,我们正在一个Tomcat/J2EE应用程序中工作 在这个应用程序中,我们在会话中存储了大量数据,我想知道我们可以毫无问题地存储多少数据 最低限制是多少?Tomcat的记忆?JVM 如果可以存储200k字符串,如何计算 对于#1-您可以存储分配给JVM的堆大小所需的数据。当然,tomcat在JVM中运行,因此它还将使用分配的部分内存 对于#2-这实际上取决于字符串的大小-每个unicode字符需要2个字节。取字符串的平均大小,乘以200k,然后确保分配了足够的内存。Tomcat在JVM中运行。因此

我们正在一个Tomcat/J2EE应用程序中工作

在这个应用程序中,我们在会话中存储了大量数据,我想知道我们可以毫无问题地存储多少数据

最低限制是多少?Tomcat的记忆?JVM


如果可以存储200k字符串,如何计算

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


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

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


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

Ummm。。。为什么?从设计角度来看,在会话对象中存储那么多字符串数据听起来很可疑。当然,它会带来可伸缩性问题。(将400KB+乘以实时会话数…@StephenC你说得对。这是由于数据库设计不当造成的,我们现在无法更改。我们正在探索“变通方法”,其中之一是在内存中存储大量数据。我想说,将这些数据存储在内存中是个坏主意,但我还想在表上加上一些数字,“您可以存储分配给JVM的堆大小所需的数据”除以预期的并发会话数。或者可能是预期会话的最大数量。。。