我使用Java 8
運行我的應用程序,但是我一直得到以下錯誤:Java 8:OutOfMemory錯誤,更改MaxPermSize?
java.lang.OutOfMemoryError: GC overhead limit exceeded
我試圖增加MaxPermSize
從512米到但還是我收到了同樣的錯誤。我該如何解決這個問題?
我使用Java 8
運行我的應用程序,但是我一直得到以下錯誤:Java 8:OutOfMemory錯誤,更改MaxPermSize?
java.lang.OutOfMemoryError: GC overhead limit exceeded
我試圖增加MaxPermSize
從512米到但還是我收到了同樣的錯誤。我該如何解決這個問題?
作爲@Ajan評論,Java 8不再有「permgen」堆空間,並且該選項將被忽略。
但這根本不是一個permgen問題。實際上,這很可能是主堆棧已滿的標誌。如果JVM在過去的幾個GC週期內檢測到GC佔總CPU時間的比例過大,則會拋出此異常。這通常發生是因爲堆已經接近完整,並且GC正在越來越頻繁地運行。
因此,問題的「快速修復」是使用-Xmx...
選項增加主堆大小。但是,如果真正的問題是你有內存泄漏,那麼這只是推遲了不可避免的。除非你已經理解你的應用程序使用大量內存的原因,否則你應該開始尋找內存泄漏。
感謝您的回覆,-Xmx已經設置爲1024,我應該進一步提高它嗎?我應該怎麼做? – java123999
如果您已經增加了-Xmx,我會建議您在再次增加之前尋找潛在的內存泄漏。 –
謝謝,我會,但編號喜歡看看這個修補程序在此期間的作品,你會建議增加它? – java123999
考慮看看[這篇文章。](http://stackoverflow.com/questions/5839359/java-lang-outofmemoryerror-gc-overhead-limit-exceeded) – Keews
JVM v8中的MaxPermSize不起作用 - 那裏不是PermGen。 – Arek
謝謝你的答覆,如果沒有PermGen我應該如何解決這個問題? – java123999