菜单

获取 Java 内存使用情况

目录

Java 内存获取使用情况 Runtime.getRuntime().totalMemory, freeMemory

Java 返回虚拟机内存信息的 "总"、"已用 "和 "最大可用 "信息。
每个项目的说明如下。

  • 总金额...Runtime.getRuntime().totalMemory()。是分配给 Java 虚拟机的内存量。
  • 使用量...Runtime.getRuntime().totalMemory()。 -Runtime.getRuntime().freeMemory()。变得,
    当前在内存中分配的对象的内存使用情况。
  • 可用最大值...Runtime.getRuntime().maxMemory()。是 Java 虚拟机尝试使用的最大内存容量。
    如果使用量接近总使用量,即使进行了垃圾回收也没有可用内存,Java 虚拟机就会扩展到 "最大可用"。

示例程序

/**
 * Java 虚拟机的总内存容量和使用情况、
 * 返回尝试使用的最大内存容量信息。
 * 返回 Java 虚拟机内存信息。
 */
public static String getMemoryInfo() {
    DecimalFormat f1 = new DecimalFormat("#,###KB");
    DecimalFormat f2 = new DecimalFormat("##.#");
    long free = Runtime.getRuntime().freeMemory() / 1024;
    long total = Runtime.getRuntime().totalMemory() / 1024;
    long max = Runtime.getRuntime().maxMemory() / 1024;
    long used = total - free;
    double ratio = (used * 100 / (double)total);
    字符串 info =
    "Java 内存信息:总内存 = " + f1.format(total) + "," +
    "已用 = " + f1.format(used) + " (" + f2.format(ratio) + "%)," +
    "可用最大值 = " + f1.format(max);
    返回 info; }
}


执行结果 1.

执行示例

public static void main(String[] args) {
    System.out.println(getMemoryInfo());
}

输出结果

Java 内存信息:总计 = 1,984 KB,使用 = 458 KB (23.1%),最大可用 = 65,088 KB

执行结果 2.

执行示例
更改 Java 堆大小并运行。
Java 堆大小值可在 Java 命令选项中指定。

java -Xms64m -Xmx512m Main

-Xms初始堆大小
指定分配给 Java 虚拟机的初始内存量。默认值为 2 MB。
-Xmx 最大堆大小
指定 Java 虚拟机的最大内存分配。默认值为 64 MB。

public static void main(String[] args) {
    System.out.println(getMemoryInfo());
}

输出结果

Java 内存信息:总容量 = 65,088KB,使用量 = 524KB (0.81TB3T),最大可用容量 = 520,256KB

总运行时.getRuntime().totalMemory() "为-Xms。和 "最大可用 Runtime.getRuntime().maxMemory()" 中的-Xmx链接到

  • URLをコピーしました!
目录