嗨,我們正在使用unix環境中運行的進程之一的內存異常。如何識別錯誤(我們發現在我們的java進程中內存泄漏的可能性很小)。所以whatelse我們需要分析找到rootcauasejava中的內存溢出錯誤
-2
A
回答
1
我會使用像YourKit(homepage)事件探查器,讓您可以輕鬆地查找被分配這麼多的內存建議。
在任何情況下,您都應該檢查爲您的JVM指定了哪些設置,以瞭解您的程序是否需要更多堆內存。您可以通過指定-X
PARAMS設置:
java -Xmx2g -Xms512m
將開始與JVM最大堆和512MB
0
的起始大小的2Gb的如果沒有內存泄漏,那麼應用程序需要更多的內存。你是否離開堆內存,或者內存或本地內存?對於堆內存和perm內存,您可以分別使用-Xmx.or -XX:PermSize參數來增加分配。
但首先嚐試使用探查器來驗證您的應用程序是否真的沒有泄漏任何內存。
相關問題
- 1. MySQL內存溢出java堆溢出
- 2. 溢出或內存錯誤C++
- 3. java堆棧溢出錯誤?
- 4. 堆棧溢出錯誤(Java)
- 5. C中的內存溢出
- 6. Instr中的溢出錯誤
- 7. Java BigDecimal可能的溢出錯誤
- 8. 內存溢出!在Linux中
- 9. Memset內存溢出
- 10. CCSprite內存溢出
- 11. 堆內存溢出
- 12. 內存溢出用 「+ =」
- 13. Hypertable啓動時溢出內存溢出
- 14. 內存溢出的Android
- 15. Java堆棧溢出錯誤 - 圖算法
- 16. 遞歸java堆棧溢出錯誤
- 17. Java堆棧溢出錯誤與遞歸
- 18. 出內存錯誤
- 19. Excel中溢出錯誤
- 20. Excel VBA中溢出錯誤
- 21. 錯誤在VBA中溢出
- 22. 錯誤;溢出6
- 23. 溢出錯誤VBA
- 24. VB6溢出錯誤
- 25. ExecuteNonQuery溢出錯誤?
- 26. Java的8個全GC和內存溢出的Java堆空間
- 27. Python:嵌套lambdas - `s_push:解析器堆棧溢出內存錯誤`
- 28. MySQL C++連接器內存溢出錯誤
- 29. DataOutputStream類寫造成內存溢出錯誤
- 30. 在Eclipse中的內存溢出異常
>>我們發現在我們的java進程中內存泄漏的可能性很小 您究竟做了什麼來得出這個結論?您是否使用JMX並監視堆使用情況?應用程序試圖做什麼? – jagamot 2010-03-18 17:22:20
@anil:如果你的Java代碼和你的問題以及問題標題一樣寫得很好,我建議你再仔細看一下代碼,以確保它不會泄漏;) – SyntaxT3rr0r 2010-03-18 17:25:29
幸運的是,你不是第一個遇到這個問題的人,所以有關於這個問題的很多問題(和答案):) http://stackoverflow.com/search?q=outofmemoryerror標準答案是:「第一個配置文件(http://java-source.net/open-source/性能分析器)應用程序並根據結果確定內存泄漏或爲其提供更多內存「。真的沒有其他辦法。 – BalusC 2010-03-18 17:37:27