使用eclipse测试java程序的内存消耗

时间:2011-05-03 12:27:37

标签: java eclipse memory plugins monitor

eclipse中是否有一个插件可以用来测试我刚刚运行的程序花费了多少内存?

我想在运行程序后可能会有一个插件按钮,我可以点击它,它会显示我刚才的程序峰值内存消耗的图表。

3 个答案:

答案 0 :(得分:9)

我个人喜欢VisualVM(tutorial),包含在最新的JDK版本中。

答案 1 :(得分:3)

我同意Nobody先生的观点,即VisualVM很好。 Eclipse Memory Analyzer也有一些不错的功能。

答案 2 :(得分:1)

程序中的 总使用/可用内存 可以通过java.lang.Runtime.getRuntime();

在程序中获得

运行时有几种与内存相关的方法。以下编码示例演示了它的用法。

import java.util.ArrayList;
import java.util.List;

public class PerformanceTest {
  private static final long MEGABYTE = 1024L * 1024L;

  public static long bytesToMegabytes(long bytes) {
    return bytes / MEGABYTE;
  }

  public static void main(String[] args) {
    // I assume you will know how to create an object Person yourself...
    List<Person> list = new ArrayList<Person>();
    for (int i = 0; i <= 100000; i++) {
      list.add(new Person("Jim", "Knopf"));
    }
    // Get the Java runtime
    Runtime runtime = Runtime.getRuntime();
    // Run the garbage collector
    runtime.gc();
    // Calculate the used memory
    long memory = runtime.totalMemory() - runtime.freeMemory();
    System.out.println("Used memory is bytes: " + memory);
    System.out.println("Used memory is megabytes: "
        + bytesToMegabytes(memory));
  }
}