【发布时间】:2011-06-02 21:49:05
【问题描述】:
我正在尝试计算我的 Java 程序可用的内存量。 我有这个当前的实现:
long getAvailableMemory() {
Runtime runtime = Runtime.getRuntime();
long totalMemory = runtime.totalMemory();
long freeMemory = runtime.freeMemory();
long maxMemory = runtime.maxMemory();
long usedMemory = totalMemory - freeMemory;
long availableMemory = maxMemory - usedMemory;
return availableMemory;
}
对吗?有没有更简单/更准确的方法来计算这些信息?看了别人的代码后,我看到这样的东西略有不同:
long getAvailableMemory() {
long totalVmHeap = Runtime.getRuntime().totalMemory();
long freeVmHeap = Runtime.getRuntime().freeMemory();
long usedVmHeap = totalVmHeap - freeVmHeap;
long maxVmHeap = Runtime.getRuntime().maxMemory();
long availableVmHeap = maxVmHeap - usedVmHeap + freeVmHeap;
return availableVmHeap;
}
无论如何,获取这些信息的正确方法是什么?
【问题讨论】:
-
您的解决方案在我看来是正确的。
-
我以为它们是一样的,但现在我看到第二个只是给你(最大 - 总数)。
-
我认为您应该将部分问题作为答案,以便可以将其作为已回答的问题提交。 Should I answer my own questions