簡體   English   中英

如何更正“Java 堆空間 - 內存不足”錯誤

[英]How can I correct a “Java heap space - Out of Memory” error

我目前正在針對相當大的數據集運行我的系統,但出現錯誤。 '內存不足。 Java堆空間'。

有沒有辦法解決這個問題,還是只是數據集太大而無法使用的情況?

一般來說,你可以

  • 給它更多的內存,例如增加最大堆大小,但不要給它超過大約 90% 的主內存。 順便說一句,默認值是主內存的 25%,最高可達 32GB。
  • 優化代碼,使其使用更少的內存,例如使用內存分析器。 您可以使用更高效的數據結構或一次將部分數據加載到內存中。
  • 分解數據,使其一次只處理一部分。

如果不是數據集占用了內存,則可能是因為您沒有在對象處於非活動狀態時釋放它們。

這通常是由於保留對非常大的對象的引用,或者在不再需要它們之后很長一段時間內仍然存在大量對象。 這很可能是靜態變量的引用,但它也可能是對仍處於活動狀態的方法中的大型臨時變量(例如,大型StringBuilder對象)的引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM