10
我想計算我的Java程序有多少內存可用。 我有這個當前的實施:在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;
}
總之,有什麼讓這個信息的正確方法?
您的解決方案看起來對我來說是正確的。 – Adrian 2011-06-02 21:56:22
我以爲他們是一樣的,但現在我看到第二個人給你(最大總數)。 – trutheality 2011-06-02 23:47:59
我認爲你應該把你的問題的一部分作爲答案,以便這可以作爲回答問題提交。 [我應該回答我自己的問題](http://meta.stackexchange.com/questions/12513/should-i-not-answer-my-own-questions) – Jarekczek 2012-09-17 12:39:16