Java 在求解过程中,内存指纹应如何变化

Java 在求解过程中,内存指纹应如何变化,java,memory,drools,ram,optaplanner,Java,Memory,Drools,Ram,Optaplanner,我正在解决Optaplanner的一个问题,我一直在阅读关于内存指纹应该是什么样子的。我一直这样做是因为当放大问题时,OOM错误不断出现 显示解决过程中的RAM内存使用情况。我知道,由于数据集的原因,内存与基线相比略有增长。在解决问题期间,我的问题中内存演变的快照看起来好像是在增量增长: 我也一直在使用VisualVM,这些对象来自口水。但我不能再深入下去了 所以我的问题首先是关于理论上的记忆指纹。“峰值”对应什么?它们是否与解决步骤直接相关 还有,我的问题中持续增长的记忆是否是因为我制定的口

我正在解决Optaplanner的一个问题,我一直在阅读关于内存指纹应该是什么样子的。我一直这样做是因为当放大问题时,OOM错误不断出现

显示解决过程中的RAM内存使用情况。我知道,由于数据集的原因,内存与基线相比略有增长。在解决问题期间,我的问题中内存演变的快照看起来好像是在增量增长: 我也一直在使用VisualVM,这些对象来自口水。但我不能再深入下去了

  • 所以我的问题首先是关于理论上的记忆指纹。“峰值”对应什么?它们是否与解决步骤直接相关

  • 还有,我的问题中持续增长的记忆是否是因为我制定的口水限制效率低下?还是我应该把注意力集中在别的地方


  • 可能有很多事情。很难通过StackOverflow解决这个问题-这是一个实际的、深入的支持参与。回答以下问题:1。峰值可能就在GC垃圾收集之前(可能停止全球GCs),与步骤无关。2增长可能表明内存泄漏-从约束代码、optaplanner的计划克隆如何与代码交互、drools如何与代码交互,或其他原因。