Olá, gostaria de saber se existe algum método para obter o atual uso da memoria RAM de uma aplicação Java e da CPU.
usando Runtime, o uso que indica, não está exato.
Olá, gostaria de saber se existe algum método para obter o atual uso da memoria RAM de uma aplicação Java e da CPU.
usando Runtime, o uso que indica, não está exato.
Depende o contexto, o código abaixo traz dados da JVM (ram consumida, disponivel para jvm):
Runtime runtime = Runtime.getRuntime(); long maxMemory = runtime.maxMemory(); long allocatedMemory = runtime.totalMemory(); long freeMemory = runtime.freeMemory();
Se quer saber do sistema como um todo:
OperatingSystemMXBean.getTotalPhysicalMemorySize() OperatingSystemMXBean.getFreePhysicalMemorySize() OperatingSystemMXBean.getSystemLoadAverage() / OperatingSystemMXBean.getAvailableProcessors()
Ler carga da CPU, se n estou enganado, n funciona no windows.
Tbm acredito que não.
Existe uma biblioteca aí muito interessante chamada SIGAR. Eu usei ela para fazer um projeto que, basicamente, pegava as informações da CPU, RAM, NET e HDD a cada segundo e armazenava num banco de dados. Muito legal, usei ela para fazer a parte da CPU e RAM. NET e HD eu pegava nativamente com o Java, mesmo. Dá uma olhadinha nela, muito fácil de usar.
[]'s