获取OutOfMemoryError的主要可能原因是什么?

时间:2016-08-22 09:49:21

标签: java out-of-memory

今天工作时我在我们的一个应用程序中遇到了这个问题。 场景是:我们通过点击它有一个加载按钮,它将加载数据库中缺少的记录。但问题是,通过单击刷新按钮重新加载相同的记录时,它会给出OutOfMemoryError。任何人都可以简要解释一下可能的原因是什么,因为在第一次尝试时它会加载所有记录,但为什么我们在刷新它时会遇到异常。

如果有任何可用于研究这种情况的好资源也会有所帮助。 提前谢谢......

2 个答案:

答案 0 :(得分:0)

唯一的原因是你不断创建新对象而没有足够的自由,或者你创建了太多的线程。

您可以使用Java VisualVM's profiler进行一些内存分析。这允许您获得概述,哪些对象在内存中,以及哪个其他对象/线程引用它们。

Java VisualVM应该是Sun JDK的一部分。

另见:

答案 1 :(得分:-2)

我开始知道我们的应用程序有很多线程处理。我尝试使用下面的命令来减少服务器中的堆栈大小,并且它有效。

-Xss512k(将java线程堆栈大小设置为此值)

以下是我用来解决此问题的resource