rbh*_*sar 2 java apache-commons
我正在运行多线程导入,运行大约1-2个小时.并在导入之前,将数据放入表中.我正在查
if(debug.isEnabled())
logger.debug("Object="+MyObject);
Run Code Online (Sandbox Code Playgroud)
其中MyObject使用ToStringBuilder的toString方法.
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Arrays.copyOfRange(Arrays.java:2694)
at java.lang.String.<init>(String.java:203)
at java.lang.StringBuffer.toString(StringBuffer.java:561)
at org.apache.commons.lang3.builder.ToStringBuilder.toString(ToStringBuilder.java:1063)
Run Code Online (Sandbox Code Playgroud)
我认为toStringBuilder导致了这个问题.我对么?如果是,有什么方法可以解决这个问题?
不必要.所有这些错误意味着你几乎没有堆空间,并且垃圾收集器放弃了尝试回收空间,因为它运行太多而没有回收足够的空间.它在代码中发生的事实并不一定意味着什么.这可能是一个完全不同的东西占用了空间,但是当它最终放弃时,那个召唤再次启动了GC.你需要进行堆转储并在像YourKit或VisualVM这样的分析器中查看它,看看究竟发生了什么.
| 归档时间: |
|
| 查看次数: |
391 次 |
| 最近记录: |