10
|
jilles de wit · 技术社区 · 14 年前 |
1
6
嗯,你用的内存太多了——从声音上看,可能是因为内存泄漏太慢。
您可以尝试使用
要调查它是否是内存泄漏,请指示VM使用
编辑: 正如命运所愿,我在这个问题被问到的第二天,在一个批处理风格的应用程序中,碰巧遇到了这个问题。这不是由内存泄漏引起的,增加堆大小也没有帮助。我所做的实际上是 减少 堆大小(从1GB到256MB)可以使完整的GC更快(尽管更频繁)。嗯,但值得一试。 编辑2: 不是所有的问题都由较小的堆解决…下一步是启用 G1 garbage collector 这似乎比CMS做得更好。 |
2
1
98%的内存将在恢复不到2%的内存的同一时间段内进行测量。 很可能没有固定的期限。例如,如果OOM检查将在每1000000个对象实时检查之后进行。所需时间取决于机器。
你很可能无法通过添加
|
3
1
简单的答案是没有指定。然而,在实践中,启发式的“有效”,所以它不能是你所假定的两种极端解释中的任何一种。 如果你 真正地 为了找出测量的时间间隔,您总是可以读取OpenJDK 6或7源代码。但我不会费心,因为这帮不了你解决问题。 “最佳”方法是阅读一些关于调优的内容(从Oracle/Sun页面开始),然后小心地“旋转调优旋钮”。它不是很科学,而是问题空间(准确地说 预测 应用程序+GC性能)太难了,因为目前有可用的工具。 |
codeforester · 测量GC暂停时间的最佳方法是什么? 6 年前 |
Venki WAR · 需要解释G1的并行完整GC 6 年前 |
Stephan_Berlin · 为什么CMS系列中的初始标记阶段 6 年前 |
Bonsaisteak · 为什么年轻一代需要三个区域来收集垃圾? 6 年前 |
goks · 如何清除熊猫的数据帧内存? 6 年前 |