Java OpenJDK JVM是否有看起来像内存泄漏的缓存/缓冲区?
我正在开发一个在OpenJDK JVM上运行的应用程序,并跟踪其内存使用情况。它的常驻集大小似乎随着时间的推移而增加。我想知道JVM内部是否有类似的缓冲或高速缓存,如果有,我如何解释以确定我的应用程序是否真的泄漏?Java OpenJDK JVM是否有看起来像内存泄漏的缓存/缓冲区?,java,memory-leaks,jvm,Java,Memory Leaks,Jvm,我正在开发一个在OpenJDK JVM上运行的应用程序,并跟踪其内存使用情况。它的常驻集大小似乎随着时间的推移而增加。我想知道JVM内部是否有类似的缓冲或高速缓存,如果有,我如何解释以确定我的应用程序是否真的泄漏? 这是一张显示随时间收集的一些统计数据的图表。引起报警的是白色的(它在右轴上绘制):这是进程内存使用率的导数图。它总是正值,这意味着内存使用量总是在增长。通常,您可以期望JVM使用的内存达到您通过-Xmx参数给出的值,即使它都是垃圾。这个值比那个值高吗?@nos:我相信你的意思是-X
这是一张显示随时间收集的一些统计数据的图表。引起报警的是白色的(它在右轴上绘制):这是进程内存使用率的导数图。它总是正值,这意味着内存使用量总是在增长。通常,您可以期望JVM使用的内存达到您通过
-Xmx
参数给出的值,即使它都是垃圾。这个值比那个值高吗?@nos:我相信你的意思是-Xms
。检查-Xmx
会导致OOME。@错误的答案是不,我的意思是-Xmx。超过-Xmx而没有得到OOME将意味着真正的泄漏,可能是在本机代码中。@nos:啊,对不起,误解了您最初的评论。减少-Xms并没有改变任何东西。在我看到@nos的澄清之前,我们将我们的应用程序一分为二,我们发现我们实际上在某处泄漏。缺少明确的“是的,内存似乎会增长,因为x”表明我们需要重新审视我们的应用程序。