Ada*_*one 2 java out-of-memory
我有这个需要处理大量数据的java模拟器.它工作正常,但我得到了一个int[100000][100][2]与其他大数组一起的数组.该程序说它的内存不足.(Java.lang.outOfMemoryError)
一切都很好,我只是给它更多的记忆,但它似乎总是在约300M左右耗尽即使我允许它2GB.这一切都来自观看任务经理.
我的系统有什么问题,或者这只是我需要处理的java事情?
@DanielPryden
操作系统:Win 7 32Bit 4GB内存
JVM命令:java -Xmx2048M -Xms2048M模拟器
错误数据:必须从IDE(使用IntelliJ)获取.我不知道如何从cmd做到这一点.我认为这就是你要找的东西.
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at Simulator.main(Simulator.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Run Code Online (Sandbox Code Playgroud)
您可能遇到堆碎片问题.即使您设置-Xmx2GB,上面的整数数组也需要块连续内存.我建议也固定最小堆大小,例如-Xms2GB.这当然要求您的机器实际上远远超过2GB,因为操作系统开销,其他进程等.
或者,您可能会重新访问您的数据结构,看看您是否真的需要这样一个连续的块.以某种方式将其分解可能会减少对大型连续内存块的需求.
| 归档时间: |
|
| 查看次数: |
3082 次 |
| 最近记录: |