如何解决java中的堆空间错误?

时间:2013-06-28 07:19:51

标签: java sockets memory-management serversocket

任何人都可以帮助我 我在过去的一周里一直在努力解决这个问题,但无法得到答案。我的问题是我有三个类,一个类创建一个线程,另一个类每10秒创建一个线程,每个类我打开一个数据库连接我的代码是巨大的,因为某些算法运行然后在同一点它会褶皱并给出如下错误。 谢谢你提前。

2 个答案:

答案 0 :(得分:1)

增加jvm中的以下配置

-Xms<size>        set initial Java heap size

-Xmx<size>        set maximum Java heap size

-Xss<size>        set java thread stack size

要动态获取堆大小,请使用以下代码

 //Get the jvm heap size.
long heapSize = Runtime.getRuntime().totalMemory();

//Print the jvm heap size.
System.out.println("Heap Size = " + heapSize);

答案 1 :(得分:1)

尝试在调用时增加JVM的堆最小和最大堆内存大小。

例如:java -Xms512M -Xmx1280M MainClassFile

这将调用初始堆大小为512兆字节的JVM,并可执行类文件,最大可扩展到1280兆字节。

有关详情,请参阅以下链接:http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html