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