在运行JUnit测试时测量内存消耗的方法



我需要测量我的JUnit测试消耗了多少内存。

  1. 所以最明显(但不方便)的方法是使用"-Xms128m -Xmx512m"这样的参数运行JVM,并跟踪何时得到OutOfMemory错误。

  2. 第二种方法是在运行所有测试后请求堆转储,然后使用内存分析器工具。但是,每次运行测试时都这样做是没有用的。

期望的方式是,比如说,将内存消耗记录到一个文件中,其中包含诸如最大内存消耗、平均消耗、GC调用计数等值。或者甚至画一个图表来显示内存是如何使用的。

问题是,有什么工具、方法或工具可以做到这一点吗?或者,也许,我的愿望是不真实的和幼稚的,没有办法收集这样的数据?

测试在JUnit4的IntelliJ Idea下运行。我可以自由地使用其他环境。提前感谢任何建议!

你可以使用JConsole,

http://docs.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html

JDK自带

最新更新