小编Dan*_*675的帖子

应该花多少时间进行垃圾收集

我有一个应用程序负责存档旧应用程序,这些应用程序一次会执行大量应用程序,因此需要一次运行几天.

当我的公司开发它时,他们对它进行了相当多的性能测试,他们似乎得到了相当不错的数字,但我最近为客户运行了一个存档,它似乎运行得很慢,性能似乎它的运行时间越长越好.

似乎没有内存泄漏,因为我用jconsole监视它仍然有足够的可用内存并且似乎没有缩小.

然而我注意到堆的幸存者空间和终身可以很快填满,直到垃圾收集出现并清除它似乎经常发生,我不确定这是否可能是明显的来源慢一点.

该应用程序已经运行了7天3小时,根据jconsole,它已经花了6个小时执行复制垃圾收集(772,611个收集)和12小时25分钟的标记清理压缩(145,940个收集).

这似乎花了大量的时间用于垃圾收集,我只是想知道是否有人之前已经研究过这样的事情,并且知道这是否正常?

编辑

本地处理似乎很慢,例如我正在查看日志中的一部分花了5秒钟使用xpath从SOAP信封中提取一些xml,然后将其附加到字符串缓冲区以及根标记..这就是全部确实.我还没有对它进行分析,因为这是在生产中运行,我要么必须通过网络提取数据,要么在我们的开发环境中建立一个大型测试基础,这可能最终不得不这样做.

运行Java HotSpot Client VM版本10.0-b23

真的只需要高吞吐量,没有配置任何特定的垃圾收集参数,将运行默认值.不知道如何找到正在使用的收藏家?

固定

最终得到一个分析器继续它,结果导致减速的原因是一些代码不断修剪线条状态框输出记录语句,这是非常糟糕的.应该已经认为垃圾收集是不断将状态文本复制到内存中的症状,而不是实际原因.

干杯伙计.

java garbage-collection

10
推荐指数
1
解决办法
5272
查看次数

标签 统计

garbage-collection ×1

java ×1