2012-12-03 2 views
1

몇 초 동안 몇 가지 명령을 실행하는 작은 테스트 응용 프로그램을 개발하려고합니다. 모든 X 초마다 CPU 사용량, 메모리 사용량 및 네트워크 사용량을 측정합니다. Windows 작업 관리자. 응용 프로그램은 java로 작성되며 Windows와 Linux에서 모두 실행해야합니다. 많은 사람들이 시스템 정보를 쉽게 추출하기 위해 Sigar API를 사용한다는 것을 알게되었습니다. 내가Windows/Linux에서 Java를 사용하여 CPU 사용량, 메모리 사용량 및 네트워크 사용량을 추출합니다.

Mem mem = sigar.getMem(); 
mem.getUsed(); 

나는 여전히 차이가 메모리 사용 및 사용 실제 메모리 사이에 무엇인지 확실하지 않다 사용하여 메모리 사용을 추출하는 데 사용하는 방법을 발견, 누군가가이 날을 자세히 설명 할 수 있습니까?

또한 Cpu 사용 및 네트워크 사용을 추출하는 방법을 잘 모르겠습니다. 는 CPU에 대해 나는 시도했다 :

cpu = sigar.getCpuPerc(); 
cpu.getCombined(); 

하지만 숫자는 내가 작업 관리자에서보고 있어요 것과는 매우 다른 것 같다. 원하는 결과를 얻기 위해 어떤 API를 사용해야합니까? 네트워크 사용을위한 나는 단서가 없습니다.

답변

1

사용 된 메모리는 할당 된 메모리 크기를 참조하며 실제로 사용 된 메모리는 할당 된 메모리에서 실제로 사용 된 메모리이며 일부 커널 및 다른 영역의 메모리가 줄어 듭니다. CPU의 경우

, 나는 또한 다르게 값을 파악하고 본 나는 아직도 나는 그것을 그래서 지금은 값이 매우 유사했다 (100)에 의해 번식하는 것이 좋습니다 일부 블로그 ... http://code.google.com/p/starfire/source/browse/trunk/starfire/src/main/java/es/upm/dit/gsi/starfire/capability/systemMonitor/CpuMonitor.java?spec=svn279&r=279

네트워크 수색.