Tôi đang cố tính toán số lượng bộ nhớ có sẵn cho chương trình Java của mình. Tôi có triển khai hiện tại này:Cách tốt nhất để tính toán bộ nhớ có sẵn trong Java là gì?
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;
}
Đúng vậy không? Có cách nào dễ dàng hơn/chính xác hơn để tính toán thông tin này không? Sau khi xem mã của người khác, tôi thấy một cái gì đó như thế này hơi khác:
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;
}
Dù sao thì, cách nào đúng để nhận thông tin này?
Giải pháp của bạn có vẻ đúng với tôi. – Adrian
Tôi nghĩ chúng giống nhau nhưng bây giờ tôi thấy cái thứ 2 chỉ cung cấp cho bạn (tối đa là tổng số). – trutheality
Tôi nghĩ bạn nên đặt một phần câu hỏi của mình như một câu trả lời, để điều này có thể được nộp bằng một câu hỏi được trả lời. [Tôi có nên trả lời câu hỏi của riêng mình] (http://meta.stackexchange.com/questions/12513/should-i-not-answer-my-own-questions) – Jarekczek