Java를 사용하여 현재 실행중인 Java Virtual Machine에서 사용되는 CPU의 비율을 얻으려고합니다. 저의 연구는 저에게 com.sun.management.OperatingSystemMXBean
클래스 사용에 대해 지적했습니다.OperatingSystemMXBean을 사용하여 CPU 사용량을 얻으십시오.
import java.lang.management.ManagementFactory;
import com.sun.management.OperatingSystemMXBean;
public class TestClass {
public static void main (String[] args) {
OperatingSystemMXBean bean = (com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
System.out.println(bean.getProcessCpuLoad());
System.out.println(bean.getSystemCpuLoad());
}
}
두 대의 컴퓨터에서이 작업을 테스트 한 후, 나는 두 통화 -1.0
의 결과를 얻는 중지 할 수 없습니다 : 온라인 예에 따라, 나는 다음과 같은 서면으로 작성했습니다. Java 7 및 6의 64 비트 및 32 비트 버전을 다양한 방법으로 사용하여이 코드를 실행 해 보았습니다. 그래도, 내가 할 모든 -1.0
, according to the Javadocs 중 인쇄, 내가 여기서 뭘 또 뭘 모르는
All values betweens 0.0 and 1.0 are possible depending of the activities going on in the system. If the system recent cpu usage is not available, the method returns a negative value.
이다. CPU로드를 얻는 것이 중요하며 Sigar와 같은 다른 라이브러리를 사용하지 않는 것이 좋습니다. 누구든지이 문제에 대해 어떤 권고 사항이나 통찰력을 가지고 있습니까?
감사합니다 도움이 될 수 있습니다하지만 난 실행 관찰 한 : 내 컴퓨터에 ~ 2 초 후에 다음과 같은 변화의 코드를 실행
는사용 정보를 생산하기 시작합니다 이 코드는 CPU 사용률을 30-40 % 증가시킵니다. 즉,이 코드를 실행할 때마다 CPU 사용률이 증가합니다. –
@Shashank이 코드는 CPU 사용량 정보를 얻는 데 걸리는 시간을 보여주기위한 것입니다. 실제 시스템에서는이 호출을 무한 루프로 수행하면 안됩니다. 유스 케이스 당 한 번만 실행하면 응용 프로그램이 실행되는 순간에 충분합니다. – Kon
이 코드를 1-2 초 동안 실행하는 경우에도 CPU 사용량이 증가합니다. –