我的java类读入一个60MB的文件,并生成HashMap
一个HashMap
包含超过3亿条记录的文件.
HashMap<Integer, HashMap<Integer, Double>> pairWise =
new HashMap<Integer, HashMap<Integer, Double>>();
Run Code Online (Sandbox Code Playgroud)
我已经将VM参数调整为:
-Xms512M -Xmx2048M
Run Code Online (Sandbox Code Playgroud)
但系统仍然适用:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.HashMap.createEntry(HashMap.java:869)
at java.util.HashMap.addEntry(HashMap.java:856)
at java.util.HashMap.put(HashMap.java:484)
at com.Kaggle.baseline.BaselineNew.createSimMap(BaselineNew.java:70)
at com.Kaggle.baseline.BaselineNew.<init>(BaselineNew.java:25)
at com.Kaggle.baseline.BaselineNew.main(BaselineNew.java:315)
Run Code Online (Sandbox Code Playgroud)
在没有OOME失败的情况下运行需要多大的堆?