mrb*_*lah 0 java out-of-memory
我的代码是这样的:
for(SomeObject so : someObjects)
{
Blah b = so;
NewObject n = dao.GetNO(b.23);
}
Run Code Online (Sandbox Code Playgroud)
即它在每次迭代时在for循环内创建一个新变量.
这可能是内存不足问题的原因吗?
Netbeans报告的错误:
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:133)
at java.lang.StringCoding.decode(StringCoding.java:173)
at java.lang.String.<init>(String.java:443)
at java.lang.String.<init>(String.java:515)
at com.gargoylesoftware.htmlunit.WebResponseImpl.getContentAsString(WebResponseImpl.java:215)
at com.gargoylesoftware.htmlunit.WebResponseImpl.getContentAsString(WebResponseImpl.java:205)
Run Code Online (Sandbox Code Playgroud)
Upate 这是一个java控制台应用程序,整个应用程序基本上都在forloop中运行.
您使用的是Java 5或更高版本,还是其中一个旧版JVM?您可以尝试通过使用-XX:+ HeapDumpOnOutOfMemory布防Java命令行或使用JConsole附加到您的进程并请求堆转储来跟踪OOM的原因.然后,您可以使用Eclipse MAT工具打开转储并查看对象图,以查看哪个对象保存在程序中.MAT可以看到那些主导对象图的对象 - 所以它变得非常清楚究竟什么是泄漏.查看堆栈跟踪没有帮助,并且可能会产生误导,因为程序的一个位置的泄漏可能导致其他地方的分配失败.
| 归档时间: |
|
| 查看次数: |
6685 次 |
| 最近记录: |