2016-09-29 52 views
0

我想上一個大的文本文件執行Java腳本,但它給了我這個錯誤如何在netbeans中增加java堆內存?

 java.lang.OutOfMemoryError: Java heap space 

我想這樣做對我的NetBeans項目:

Project Properties -> Run -> VM Options -> -Xmx2048m -Xms1024m 

我也嘗試過:

System -> Programs -> Java -> Java -> View -> Execution Parameters -> -Xincgc -Xmx2048M 

但是我沒有解決問題..有什麼建議嗎?

+0

重複這種http://stackoverflow.com/questions/15460779/how-to-increase-the-java-heap- netbeans大小 –

+0

我試過所有的解決方案,但我有同樣的問題,我有一個300萬句子的文本文件 – Nad

+0

閱讀本文http://stackoverflow.com/questions/1565388/increase-heap-size-in- java?rq = 1 –

回答

0

字符串存儲可能非常昂貴。使用avarage〜80個字符長的隨機字符串,3個000 000字符串可以cosume almoust 1GB

public static void main(String[] args) { 
    List<String> list = new ArrayList<>(); 
    String base = RandomStringUtils.random(80); 
    long i = 0; 
    try { 
     while (i < 3e6) { 
      list.add(base + i++); 
     } 
    } finally { 
     System.out.println("Count:" + list.size()); 
     System.out.println("Memory:" + Runtime.getRuntime().totalMemory()/1024d/1024d); 
    } 
} 

輸出: 計數:3000000 內存:981.5

嘗試,你正在閱讀來包裝你的代碼段您的文件與我在此製作的try-finally塊相同。當錯誤將彈出時,您將獲得大約您正在使用的內存量,以及您已管理的文件已讀取多少百分比。這會讓你知道你需要多少內存。

此外,您會知道您的-Xmx指令是否有效,因爲如果它會在500mb左右發生崩潰,那麼netbeans會忽略它,或者系統中沒有可用的內存。

+0

Okey我會測試.. – Nad