Sto cercando di calcolare la quantità di memoria disponibile per il mio programma Java. Ho questa implementazione attuale:Qual è il modo migliore per calcolare la memoria disponibile in 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;
}
È quello giusto? Esiste un modo più semplice/più accurato per calcolare queste informazioni? Dopo aver guardato qualcun altro codice, ho visto qualcosa di simile, che è leggermente diverso:
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;
}
In ogni caso, qual è il modo giusto per arrivare a queste informazioni?
La tua soluzione mi sembra corretta. – Adrian
Pensavo fossero uguali ma ora vedo che il 2 ° ti dà (max - totale). – trutheality
Penso che dovresti inserire una parte della tua domanda come risposta, in modo che questo possa essere presentato come una domanda risposta. [Devo rispondere alle mie domande] (http://meta.stackexchange.com/questions/12513/should-i-not-answer-my-own-questions) – Jarekczek