我在應用程序中遇到了內存不足問題。執行線程中「java.lang.OutofMemoryError」的可能原因是什麼?
在我的線程執行的一個,突然有一種java.lang.OutofMemoryError
,使該線程死亡。
我已經選擇了應用程序的內存堆大小爲20M。 在這個線程出現之前和之後,我已經拋出了整個應用程序的內存使用情況,它不超過20M。
我不知道如何解決這個問題。
那麼java.lang.OutofMemoryError
的可能原因是什麼?如果我不知道確切的原因,有什麼方法可以解決嗎?
這就是我得到的! 之前,這個應用程序的內存佔用8M
這個應用程序的內存使用量後也8M。
有很多潛在的原因。作爲第一步,你能否發佈錯誤的細節;說原因。 – kipz
當您嘗試分配無法放入堆的連續區域的內存塊時,通常會發生OOM。因此,如果您的總內存使用量<20M並不意味着您不會(或不應該)獲得OOM例外。你可以發佈一些代碼和堆棧跟蹤? – dlev
你運行的是哪個版本的Java?新版本允許您捕獲更多信息。您也可以嘗試將-XX:+ HeapDumpOnOutOfMemoryError添加到您的java命令以在發生錯誤時生成堆轉儲。 – developmentalinsanity