Cita de: kinos en 21 Agosto 2009, 21:18 PMlos metodos de obetenciond e datos sobre la memoria de la cakse runtime, deveuelven las estadisticas de la memoria del heap (un sector de la ram, que usa java para ejecutarse)
¿Cómo se puede obtener el espacio libre del disco duro donde se ejecuta la aplicación?
He probado con esto pero nosé si es correcto:Código (java) [Seleccionar]
package memoria;
import java.lang.management.MemoryMXBean;
import java.lang.management.ManagementFactory;
public class Main {
public static void main(String[] args) {
Main apli = new Main();
apli.estadoMemoria();
}
public void estadoMemoria() {
Runtime runtime = Runtime.getRuntime();
long freeMemory = runtime.freeMemory();
long totalMemory = runtime.totalMemory();
long maxMemory = runtime.maxMemory();
System.out.println("Max Memory :" + (maxMemory / 1024.0) + " KB");
System.out.println("Total Memory :" + (totalMemory / 1024.0) + " KB");
System.out.println("Free Memory :" + (freeMemory / 1024.0) + " KB");
System.out.println("Used Memory :" + (totalMemory / 1024.0 - freeMemory / 1024.0) + " KB");
System.out.println(" =============== ");
MemoryMXBean mx = ManagementFactory.getMemoryMXBean();
long initMemory = mx.getHeapMemoryUsage().getInit() + mx.getNonHeapMemoryUsage().getInit();
long usedMemory = mx.getHeapMemoryUsage().getUsed() + mx.getNonHeapMemoryUsage().getUsed();
long committedMemory = mx.getHeapMemoryUsage().getCommitted() + mx.getNonHeapMemoryUsage().getCommitted();
long _maxMemory = mx.getHeapMemoryUsage().getMax() + mx.getNonHeapMemoryUsage().getMax();
System.out.println("Max memory:" + (_maxMemory / 1024.0) + " KB");
System.out.println("Committed memory:" + (committedMemory / 1024.0) + " KB");
System.out.println("Init memory:" + (initMemory / 1024.0) + " KB");
System.out.println("Used memory:" + (usedMemory / 1024.0) + " KB");
}
}
Me ha reportado estos datos:Citar
Max Memory :499008.0 KB
Total Memory :32384.0 KB
Free Memory :32167.6015625 KB
Used Memory :216.3984375 KB
===============
Max memory:679232.0 KB
Committed memory:51072.0 KB
Init memory:51067.0 KB
Used memory:2695.0234375 KB
Cuantos gigas libres tengo en el disco duro? con el editor de particiones e mirado y tengo 49.54 GiB y según este programa dice... "Free Memory :32167.6015625 KB"
Saludos