目录
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链接到