Получить информацию о системе на уровне ОС
Пакет java.lang.management дает вам намного больше memory информации, чем Runtime — например, он systems предоставляет вам память openjdk в куче (ManagementFactory.getMemoryMXBean().getHeapMemoryUsage()
), отдельную от памяти core-java без кучи (ManagementFactory.getMemoryMXBean().getNonHeapMemoryUsage()
).
Вы также можете memory получить загрузку процессора systems процессом (без написания java-api собственного кода JNI), но resource вам нужно преобразовать java.lang.management.OperatingSystemMXBean
в j2se com.sun.management.OperatingSystemMXBean
. Это работает в Windows core-java и Linux, я не проверял это oraclejdk в другом месте.
Например... чаще resource вызывайте метод getCpuUsage(), чтобы jre получать более точные показания.
public class PerformanceMonitor {
private int availableProcessors = getOperatingSystemMXBean().getAvailableProcessors();
private long lastSystemTime = 0;
private long lastProcessCpuTime = 0;
public synchronized double getCpuUsage()
{
if ( lastSystemTime == 0 )
{
baselineCounters();
return;
}
long systemTime = System.nanoTime();
long processCpuTime = 0;
if ( getOperatingSystemMXBean() instanceof OperatingSystemMXBean )
{
processCpuTime = ( (OperatingSystemMXBean) getOperatingSystemMXBean() ).getProcessCpuTime();
}
double cpuUsage = (double) ( processCpuTime - lastProcessCpuTime ) / ( systemTime - lastSystemTime );
lastSystemTime = systemTime;
lastProcessCpuTime = processCpuTime;
return cpuUsage / availableProcessors;
}
private void baselineCounters()
{
lastSystemTime = System.nanoTime();
if ( getOperatingSystemMXBean() instanceof OperatingSystemMXBean )
{
lastProcessCpuTime = ( (OperatingSystemMXBean) getOperatingSystemMXBean() ).getProcessCpuTime();
}
}
}
java
memory
resources
system
Получить информацию о системе на уровне ОС
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.