我面临的问题是我的应用程序使用的内存仅为100MB,之后它减少了50MB,但在Window Task Manager上它显示150MB并始终保持或增加但不减少, 我们如何减少任务管理器上的内存(私有工作集)?
答案 0 :(得分:11)
您在JConsole
(或其他监视工具)中看到的是java内存使用的模式。
JVM的内存通常分为这些区域(您还可以在监视工具中看到)。
Max Heap
大小,它减少了本机内存
可用)。Windows任务管理器没有显示。它显示了应用程序使用的整个内存(堆+非堆+本机部分)。
另请注意,通常是从OS请求更多内存的进程,即使实际应用程序“释放”内存,它也会保留此内存。这些内存页面已映射为进程的地址空间的一部分。因此,在您的任务管理器中,您不会看到内存减少的模式,但这并不表示您的应用程序存在内存泄漏 因此,您无法减少从任务管理器看到的内存,但是您从监视工具看到的内存应该在某个时候减少,否则可能表示内存泄漏