Cómo monitorear el uso de CPU, memoria y disco de su computadora en Java
Usa seguir para monitorear, ¡es simple y conveniente!
Instrucciones de uso: el siguiente código debe usarse con el archivo sigar dll. El archivo dll debe colocarse en la carpeta bin debajo del JDK para que el programa sigar lo llame y el sigar?jar. También se requiere paquete.
¡Los siguientes programas han sido probados y son completamente funcionales!
¿Acerca de los paquetes jar y los archivos dll? No puedo cargarlos, por favor envíame un mensaje privado y te los enviaré
import?java.net.InetAddress;
importar?java.net.UnknownHostException;
importar?java.util.Map;
importar?java.util.Properties;
importar?java.util.Timer;
importar?java.util.TimerTask;
importar?org.hyperic.sigar.CpuInfo;
¿importar? org.hyperic.sigar.CpuPerc;
importar?org.hyperic.sigar.CpuInfo;
importar?org.hyperic.sigar.CpuPerc; p>
importar?org .hyperic.sigar.FileSystem;
importar?org.hyperic.sigar.FileSystemUsage;
importar?org.hyperic.sigar.Mem;
¿importar? org.hyperic.sigar.NetFlags;
importar?org.hyperic.sigar.NetInterfaceConfig;
importar?org.hyperic.sigar.NetInterfaceStat
importar; ?org.hyperic.sigar.OperatingSystem;
importar?org.hyperic.sigar.Sigar;
importar?org.hyperic.sigar.SigarException ;
import?org.hyperic.sigar.Swap;
import?org.hyperic.sigar.Who;
¿clase pública?RuntimeTest?{
¿pública? static?void?main(String[]?args)?{
¿intentar?{?
Temporizador?timer?=?new?Timer( ); >
TimerTask?task?=?new?TimerTask(){
public?void?run()?{
¿probar {
memoria? ();
}?catch?(SigarException?e)?{
e.printStackTrace();
}
}
};
prueba{
timer.schedule(task,?0,?3000);//Cada recuperación una vez cada 3 segundos
}catch(Exception?ex){
ex.printStackTrace();
}
//? La información del sistema se obtiene de jvm p>
//?property(); // Según tus propias necesidades, puedes ponerlo en el temporizador para obtenerlo regularmente
//?información de la CPU
p>//cpu();
//?Información de la memoria
//?memory();
//?Información del sistema operativo
//?os();
//?Información de usuario//?quién();
}?catch?(¿Excepción?e1)?{
e1.printStackTrace();
}
}
¿privado?static?void?property()?throws?UnknownHostException?{
Runtime?r?=?Runtime.getRuntime();
Propiedades?props?=?System.getProperties();
InetAddress?addr;
addr?=?InetAddress.getLocalHost();
String?ip?=?addr.getHostAddress();
Maplt String,?Stringgt;?map?=?System .getenv();
String?userName?=?map.get("USERNAME" //Obtener el nombre de usuario
String?computerName?=?map.get ( "COMPUTERNAME"); //Obtener el nombre de la computadora
String?userDomain?=?map.get("USERDOMAIN" //Obtener el nombre de dominio de la computadora
System.out.println("Nombre de usuario: "? ?nombre de usuario);
System.out.println("Nombre de computadora: "? ?nombre de computadora);
System.out. println("Nombre de dominio del equipo: ?"? ?userDomain);
System.out.println("Dirección IP local: ?"? ?ip);
System.out. println("Nombre del host local: ?"? ?addr.getHostName());
System.out.println("Memoria total que puede utilizar la JVM: "? ?r.totalMemory() );
System.out.println("La memoria restante que la JVM puede utilizar:"? ?r.freeMemory());
System.out.println("La número de procesadores que la JVM puede usar:?" ? ?r.availableProcessors());
System.out.println("Versión del entorno de ejecución de Java:"? ?props.getProperty("java.version "));
System.out.println("Proveedor del entorno de ejecución de Java:"? ?props.getProperty("java.vendor"));
System.out.println ("URL del proveedor de Java:" "? ?props.getProperty("java.vendor.url"));
System.out.println("Ruta de instalación de Java:?"? ?props.getProperty( "java.home") );
System.out.println("Versión de especificación de la máquina virtual Java:"? ?props.ge
tProperty("java.vm.specification.version"));
System.out.println("Proveedor de especificación de máquina virtual Java:?"? ?props.getProperty("java.vm.specification .vendor "));
System.out.println("Nombre de especificación de la máquina virtual Java:"? ?props.getProperty("java.vm.specification.name"));
System.out.println("Versión de implementación de la máquina virtual Java:"? ?props.getProperty("java.vm.version"));
System.out.println("Proveedor de implementación de la máquina virtual Java: ?"? ?props.getProperty("java.vm.vendor"));
System.out.println("Nombre de implementación de la máquina virtual Java:"? ?props. getProperty("java.vm. name"));
System.out.println("Versión de especificación del entorno de ejecución de Java:?"? ?props.getProperty("java.specification.version")) ;
System.out.println("Proveedor de especificación del entorno de ejecución de Java:?"? ?props.getProperty("java.specification.vender"));
System.println("Nombre de la especificación del entorno de ejecución de Java:?" :?"? ?props.getProperty("java.specification.name"));
System.out.println("Número de versión del formato de clase Java :"? ?props.getProperty("java.class .version"));
System.out.println("Ruta de clases de Java:"? ?props.getProperty("java.class.path "));
System. out.println("Lista de rutas buscadas al cargar la biblioteca: "? ?props.getProperty("java.library.path"));
System.out.println("Ruta de archivo temporal predeterminada: ?"? ?props.getProperty("java.io.tmpdir"));
System.out.println("Una o más extensiones Ruta del directorio: "? ?props.getProperty("java.ext .dirs"));
System.out.println("Nombre del sistema operativo: "? ?props.getProperty("os. name"));
System.out .println("Arquitectura del sistema operativo:"? ?props.getProperty("os.arch"));
System.out. println("Versión del sistema operativo:"? ?props.getProperty("os .versión"));
System.out.println(
"Separador de archivos:?"? ?props.getProperty("file.separator"));
System.out.println("Separador de ruta:?"? ?props.getProperty("ruta. separador" ));
System.out.println("Separador de línea: "? ?props.getProperty("line.separator"));
System.out.println ("Usuario nombre de cuenta:"? ?props.getProperty("user.name"));
System.out.println("Directorio de inicio del usuario:?"? ?props.getProperty(" user.home") );
System.out.println("Directorio de trabajo actual del usuario:?"? ?props.getProperty("user.dir"));
}
privado?static?void?memory()?throws?SigarException?{
Sigar?sigar?=?new?Sigar();
Mem ?mem?=?sigar .getMem();
float?total?=?mem.getTotal();
float?used?=?mem.getUsed();
//Memoria total
System.out.println("Memoria total: "? ?mem.getTotal()?/?1024L/1024L? ?"M?av ");
//?Uso de memoria actual
System.out.println("Uso de memoria actual: "??mem.getUsed()?/?1024L/1024L ? ?"M?used");
//?Cantidad de memoria restante actual
System.out.println("Cantidad de memoria restante actual:"? ?mem.getFree() ?/?1024L/1024L? ?"M ?free");
//?Uso de memoria actual
System.out.println("Uso de memoria: "? used /total*100 "");
Swap?swap?=?sigar.getSwap();
//?Cantidad total del área de intercambio
System.println("Cantidad total del área de intercambio: ?"? ?swap.getTotal()?/?1024L/1024L? ?"M?av");
//?Uso actual del área de intercambio
System.out.println ("Uso del área de intercambio actual: "? ?swap.getUsed()?/?1024L/1024L? ?"M?used");
/ /?La cantidad restante del área de intercambio actual p>
System.out.println("La cantidad restante del área de intercambio actual:"? ?swap.getFree()?/?1024L/1024L? ?"M?free"); >}
privado?static?void?cpu()?throws?SigarException?{
Sigar?sigar?=?new?Sigar();
>CpuInfo?infos[]?=?sigar.getCpuInfoList();
CpuPerc?cpuList[]?=?null;
cpuList?=?sigar.getCpuPercList();
for?(int?i?=?0;?i?lt;?infos.length;?i )?{//?Aplicable a una sola CPU o a varias CPU
CpuInfo ?info?=?infos[i];
System.out.println("información del bloque de CPU");
System.out.println("MHz total de CPU:? "? ?info.getMhz()); ///?MHz total de CPU
System.out.println("Fabricante de CPU: ?? ?info.getVendor()); // Obtener la CPU proveedor, como Intel
System.out.println("Categoría de CPU: ?"? ?info.getModel( ) // Obtenga el tipo de CPU, como: Celeron
System.out.println("Número de caché de CPU: "? ?info.getCacheSize() // Número de memorias intermedias p>
printCpuPerc(cpuList[i]);
}
}
private?static?void?printCpuPerc(CpuPerc?cpu)?{
System.out.println("Uso de CPU por parte del usuario rate:"? ?CpuPerc.format(cpu.getUser())); ///?Tasa de uso del usuario
System.out .println("Uso del sistema de CPU:"? ?CpuPerc.format(cpu. getSys()));//?Uso del sistema
System.out.println("Tasa de espera actual de la CPU:" ? ?CpuPerc.format(cpu.getWait()));//?Espera actual rate
System.out.println("Tasa de errores actual de la CPU:"? ?CpuPerc.format(cpu.getNice( ))); //
System.out.println( "Tasa de inactividad actual de la CPU:"? ?CpuPerc.format(cpu.getIdle()));//?Tasa de inactividad actual
System.out.println("Uso total de la CPU:"? ?CpuPerc. format(cpu.getCombined())); //?Uso total
}
privado?static?void?os()?{
¿Sistema operativo? OS?=?OperatingSystem.getInstance();
//?Tipo de kernel del sistema operativo como:? 386, 486, 586, etc. x86
System.out.println( "Sistema operativo:"? ?OS.getArch());
System.out.println("Sistema operativo:"? ?OS.getArch()); getCpuEndian()); //
Sistema
.out.println("Sistema operativo DataModel(): "? ?OS.getDataModel()); //
//?Descripción del sistema
System.out.println(" Descripción del sistema operativo: "? ?OS.getDescription());
//?Tipo de sistema operativo
//?System.out.println("OS.getName( ) : "? ?OS.getName());
//?System.out.println("OS.getPatchLevel():?"? ?OS.getPatchLevel()); // p >
//?Proveedor del sistema operativo
System.out.println("Proveedor del sistema operativo:"? ?OS.getVendor());
// Nombre del proveedor
System.out.println("Nombre del proveedor del sistema operativo: "? ?OS.getVendorCodeName());
//?Nombre del sistema operativo p>
System.out.println("Nombre del sistema operativo:?"? ?OS.getVendorName());
//?Tipo de proveedor del sistema operativo
System. out.println ("Tipo de proveedor del sistema operativo:"? ?OS.getVendorVersion());
//?Número de versión del sistema operativo
System.out.println("Sistema operativo Número de versión: "? ?OS.getVersion());
}
privado?static?void?who()?throws?SigarException?{
Sigar ?sigar?=?new?Sigar();
¿Quién?quién[]?=?sigar.getWhoList();
si?(¿quién?!=?null? amp ;amp;?¿quién.longitud?gt;?0)?{
para?(int?i?=?0;?i?lt;?quién.longitud;?i )?{< / p>
//?System.out.println("¿Nombre de usuario en la tabla de procesos del sistema actual"? ?String.valueOf(i));
¿Quién?_quién?=?quién[ i ];
System.out.println("Consola de usuario:?"? ?_who.getDevice());
System.out.println("Host de usuario:?" ?_who.getHost());
//?System.out.println("getTime(): "? ?_who.getTime());
//? El nombre de usuario en la tabla de procesos del sistema actual
System.out.println("El nombre de usuario en la tabla de procesos del sistema actual: "? ?_who.getUser());
}
}
}
}