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によって報告さ
4.1ギガバイトのメモリ使用量は、リソースモニタによって報告されたメモリの統計のいずれかにさえ近くないです。
なぜこれほど遠いのですか?
です。なぜ誰かが投票したのかわからない! –