如何分析内存是否在释放或不使用java文件以及与数据库连接相关的内存



我在一家以产品为基础的公司工作。在某些模块中,我们的应用程序非常缓慢。因此,我们必须监控哪些java文件或面向数据库连接的文件正在占用内存。有没有任何工具可以识别哪些java文件完全占用了内存?有人能帮我找出问题吗。提前谢谢。我使用的是IBM RSA 7.5.5。有什么插件可以集成到这个IDE中吗?

尝试使用VisualVM,这是一个免费的工具,可以帮助您直观地评测应用程序,并可以将其分解为每个类。它显示了新的类实例、不同的内存段使用(堆空间、置换空间等)以及标记垃圾收集操作。Java不允许像C那样手动"释放"对象,但是,一旦对象离开作用域,它最终会在垃圾收集器运行时被垃圾收集。

如果你发现在你不希望的情况下,你最终会有大量的实例挂在那里,那么你可能会在如何管理范围方面遇到问题,或者你可能会留下对对象的引用,否则你会认为这些引用是暂时的。当没有对对象的引用和/或该对象超出范围时,就会发生垃圾回收。

Oracle故障排除页面包含一大部分关于分析内存使用情况和查找内存泄漏的内容:

  • 带HotSpot VM的Java SE 6故障排除指南

这里有一个很好的SO问题关于这个主题:

  • 解决Java内存泄漏的一般策略

最新更新