如何分析Java应用程序的一部分内存使用情况?

时间:2011-03-18 08:46:41

标签: java memory-management rfid

我有一个模拟安全RFID系统工作的java程序。它有两个主要类别。

1)模仿RFID阅读器和

的类

2)模仿RFID标签的类

我需要这些程序一起运行(在2个命令窗口中),我使用JMS在2个应用程序之间传递消息(如十六进制字符串和随机数)。

现在,由于RFID标签是资源限制,我想监控RFID标签上java程序的内存使用情况。我想将这种内存使用情况记录在不同算法和不同代码之类的变量上,以便找到最有效的解决方案。

所以,我的问题是:在进行这样的比较分析时,使用内存的最佳指标是什么?另外,我怎样才能确切地确定执行JMS以便来回发送消息的内存量,以便我可以从我获得的整个过程中将其单独输出?

我目前正在使用VisualVM来查看内存如何随程序变化?是否有更好的程序用于此目的?

提前致谢!

2 个答案:

答案 0 :(得分:0)

jprofiler ..需要许可证,但您可以在前30天内试用。

答案 1 :(得分:0)

您可以使用 Eclipse Memory Analyzer 工具。它是一个用于分析内存堆转储的FOSS工具 -

  

内存分析器(MAT)   Eclipse Memory Analyzer是一个快速且功能丰富的Java堆分析器,可帮助您查找内存泄漏并减少内存消耗。

     

使用Memory Analyzer分析具有数亿个对象的高效堆转储,快速计算对象的保留大小,查看谁阻止垃圾收集器收集对象,运行报告以自动提取泄漏嫌疑人。

您可以在此处下载http://www.eclipse.org/mat/