我在应用程序中遇到了内存不足问题。执行线程中“java.lang.OutofMemoryError”的可能原因是什么?
在我的线程执行的一个,突然有一种java.lang.OutofMemoryError
,使该线程死亡。
我已经选择了应用程序的内存堆大小为20M。 在这个线程出现之前和之后,我已经抛出了整个应用程序的内存使用情况,它不超过20M。
我不知道如何解决这个问题。
那么java.lang.OutofMemoryError
的可能原因是什么?如果我不知道确切的原因,有什么方法可以解决吗?
这就是我得到的! 之前,这个应用程序的内存占用8M
这个应用程序的内存使用量后也8M。
有很多潜在的原因。作为第一步,你能否发布错误的细节;说原因。 – kipz
当您尝试分配无法放入堆的连续区域的内存块时,通常会发生OOM。因此,如果您的总内存使用量<20M并不意味着您不会(或不应该)获得OOM例外。你可以发布一些代码和堆栈跟踪? – dlev
你运行的是哪个版本的Java?新版本允许您捕获更多信息。您也可以尝试将-XX:+ HeapDumpOnOutOfMemoryError添加到您的java命令以在发生错误时生成堆转储。 – developmentalinsanity