2016-08-16 3 views
0

Java Sigar API(http://support.hyperic.com/display/SIGAR/Home)をダウンロードしました。実行中の異なるプロセスに関するメモリ使用情報を取得するために使用します。Windowsリソースモニタに同意しないJava Sigarのメモリ使用状況

私はeclipse.exeをのメモリ使用量を報告するために、次のテストケースを書いた:

import org.hyperic.sigar.Sigar; 
import org.hyperic.sigar.SigarException; 
import org.hyperic.sigar.ptql.ProcessFinder; 

public class SigarTest { 
    public static void main(String[] args) throws SigarException { 
     Sigar sigar = new Sigar(); 
     ProcessFinder find = new ProcessFinder(sigar); 
     long pid = find.findSingleProcess("Exe.Name.ct=eclipse.exe"); 
     System.out.println(sigar.getProcMem(pid)); 
    } 
} 

は、このコードの出力を実行する:

{PageFaults=3017940, Size=4125868032, Resident=608493568} 

ただし、Windowsリソースモニターを見て、それがeclipse.exeの次の統計を表示します:

Commit (KB): 689,356 
Working Set (KB): 594,028 
Shareable (KB): 47,332 
Private (KB): 546,696 

次のスクリーンショットを参照してください:Sigarによって報告さ

enter image description here

4.1ギガバイトのメモリ使用量は、リソースモニタによって報告されたメモリの統計のいずれかにさえ近くないです。

なぜこれほど遠いのですか?

+0

です。なぜ誰かが投票したのかわからない! –

答えて

0

私は自分の質問に対する答えを見つけたと信じています。 SigarがVirtual Size(Resource Monitorに含まれていない統計情報)を報告しています。仮想サイズとコミットサイズの違いについての説明は、Windows - Commit Size vs Virtual Size

関連する問題