我有一個多線程程序,它處理大量的字符串操作,並且在幾個小時的執行後,內存超出並導致「java.lang.OutOfMemoryError:Java heap space」問題。而且我已經將我的整個內存用於java程序,即16 GB。Java中的內存問題
爲了測試我創建了下面的示例程序來理解問題,並且在重新初始化一個字符串生成器幾千次後,它會消耗超過5-10MB的內存,但是任何人都可以請求幫助克服這個問題。
StringBuilder strObj = new StringBuilder();
for(int i=0; i<50000; i++) {
strObj = null;
strObj = new StringBuilder();
}
這段代碼只會導致一個OOME,如果你運行GC。否則,所有舊的實例都會丟失,並且會被垃圾收集。換句話說,在正常使用情況下,這段代碼不會導致任何內存問題。 – jtahlborn 2012-07-17 19:33:28
獲取一個分析器並使用它。 – bmargulies 2012-07-17 19:42:30
要做多少個線程? – 2012-07-17 19:58:27