Wil*_*man 2 java memory memory-management hashmap map
我正在开发一个应用程序,它将大量数据从数据库读入a Map<String,Map<String,Map<String,String>>>,处理它,并使用内部xml编写器将处理后的报告写入电子表格.整个运行大约需要12个小时.
我发现我得到了
Exception in thread "CursorController-Thread-0" java.lang.OutOfMemoryError: Java heap space
at java.lang.AbstractStringBuilder.<init>(AbstractStringBuilder.java:45)
at java.lang.StringBuilder.<init>(StringBuilder.java:68)
Run Code Online (Sandbox Code Playgroud)
当我尝试编写这个jumbo文件时.出于这个原因,我认为最好在Map<String,Map<String,String>>完成处理时编写每个(注意更深层).
我的问题是,我怎样才能确保Map<String,Map<String,String>>在写完之后它不会保留在内存中,因为Map >>仍然会包含它?
一旦你完成Map<String,Map<String,String>>了按键的映射,"key"你就可以了
hugeMap.remove("key");
Run Code Online (Sandbox Code Playgroud)
这将"清空"该条目hugeMap并使其Map<String,Map<String,String>>符合垃圾收集条件(即,永远不会导致堆空间内存不足).
| 归档时间: |
|
| 查看次数: |
1650 次 |
| 最近记录: |