use*_*461 11 java tomcat memory-leaks memory-management
我的应用程序在Windows Server 2000上运行.内存使用量不断增长(从145米).
这是正常的吗?我是Java新手.版本是Tomcat5.5.
如果它只是增长,那就是内存泄漏.但如果它增长到你的最大堆,然后下降,那么这是正常的垃圾收集行为.您可以使用许多工具来了解更多信息.最简单的方法之一是连接JConsole(JDK的一部分)并随着时间的推移观察堆.
您还可以查看垃圾收集信息,其中包含各种开关和参数,例如-verbose:gc.
如果您想诊断内存泄漏,可以使用许多优秀的工具,包括几个可以与Eclipse,NetBeans,IntelliJ等一起使用的免费工具.
Sun"server"HotSpot的默认行为是放大堆而不是清除SoftReferences(用于缓存).默认设置是为每兆字节可用的最大堆大小保留一秒钟.因此,期望堆增长到最大大小.如果实际上内存OutOfMemoryException不足或性能变差(由于过多的GC或小缓存),那么您需要查找内存泄漏.
Tomcat服务器在重新加载应用程序后也经常遭受内存泄漏.例如,Tomcat在所有应用程序之间共享线程,这通常会导致Sun的ThreadLocal实现不正确地保留值.
| 归档时间: |
|
| 查看次数: |
21748 次 |
| 最近记录: |