WindowsでプロセスのRAMとCPU使用率のデータを収集しようとしています。具体的には、2つのプロセスを区別して(同じ名前を持つこともできる)、プロセスの情報を直接取得する必要があります。これは、と、私に2つの異なるプロセスを与える実行Javaで特定のプロセスのRAM/CPU使用率を取得する
String line;
Process process = Runtime.getRuntime().exec("tasklist.exe");
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
while ((line = input.readLine()) != null) {
if (line.startsWith("java.exe")) // I only want the processes that have 'java.exe' for a name.
System.out.println(line);
}
:
例えば、私は、プロセス、私はこのためにtasklist.exe
を使用していY.と同じ名前を持つかもしれない、プロセスXからのデータを収集する必要があるかもしれません同じ名前:
java.exe 28912 Console 9 18,664 K
java.exe 36388 Console 9 19,896 K
この場合、私は2番目のプロセスから情報を収集したいだけです。私は識別子としてというPIDを使用することができますが、このプログラムの各実行は上記のプロセスのPIDを変更すると思われます。
質問:同じ名前のものがあるにもかかわらず、同じプロセスから何度もデータを収集できますか? (tasklist
を再度実行したときに、どれがどれであるかをどのように知ることができますか?)