Windows'ta bir işlemin 'RAM ve CPU kullanımı' verilerini toplamaya çalışıyorum. Daha spesifik olarak, iki süreci birbirinden ayırmak zorundayım (aynı ada sahip olabilir) veya sürecin bilgisini doğrudan almalıyım. Bununla, bana iki farklı süreçler verir RunningJava'da belirli bir işlemin RAM/CPU kullanımını alma
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);
}
:
Örneğin, ben süreç Bunun için tasklist.exe
kullanıyorum Y. ile aynı ada sahip olması, süreç X veri toplamak gerekebilir Aynı ad:
java.exe 28912 Console 9 18,664 K
java.exe 36388 Console 9 19,896 K
Bu durumda, yalnızca ikinci işlemden bilgi toplamak istiyorum. PID'yi bir tanımlayıcı, olarak kullanabileceğimi düşünürdüm ama bu programın her bir çalıştırması,'un yukarısında gösterilen işlemlerin PID değerini değiştiriyor gibi görünüyor.
Soru: Aynı adı taşıyan bir karta sahip olsa da, aynı işlemden aynı anda birden çok kez nasıl veri toplayabilirim? (tasklist
'u yeniden çalıştırdığımda hangisinin olduğunu nasıl anlarım?)