我已经为我的java程序设置了-Xmx100g (我必须这样做),现在我怀疑程序中存在内存泄漏,在每次迭代中捕获和加载100 by的堆转储需要花费两个多小时(当我更改代码中的某些内容并希望通过堆转储分析来检查是否修复了内存泄漏时)。堆的大部分是数据(例如,其中一半是文本文件内容),在分析堆时,我真的不关心对象内容。
那么,我如何才能跳过堆数据的转储,让尽可能小的堆转储用于内存泄漏分析(只是对象的元数据,而不是它们的值)?
发布于 2019-01-19 19:03:54
如果堆转储时间太长,请使用-Xmx...减小堆大小。
如果你有一个内存泄漏,你是否需要一个100 to的堆来寻找证据是值得怀疑的。所以减少它吧。
那么,我如何才能跳过堆数据的转储,让尽可能小的堆转储用于内存泄漏分析(只是对象的元数据,而不是它们的值)?
我认为这是不可能的。此外,在许多情况下,正是值(例如引用链)允许您/分析器识别泄漏对象的来源。
https://stackoverflow.com/questions/54264531
复制相似问题