私は次のプロセスを持っています:
public void Run()
{
ProcessStartInfo serverPInfo = new ProcessStartInfo("javaw", "-jar -Xms1024M -Xmx1024M \"C:\\Users\\David\\Documents\\Visual Studio 2012\\Projects\\ConsoleApplication8\\Debug\\craftbukkit.jar\" -o true -nojline");
serverPInfo.RedirectStandardInput = true;
serverPInfo.RedirectStandardOutput = true;
serverPInfo.RedirectStandardError = true;
serverPInfo.UseShellExecute = false;
serverP = new Process();
serverP.StartInfo = serverPInfo;
serverP.OutputDataReceived += new DataReceivedEventHandler(ServerOutputDataReceived);
serverP.ErrorDataReceived += new DataReceivedEventHandler(ServerErrorDataReceived);
serverP.Start();
serverP.BeginOutputReadLine();
serverP.BeginErrorReadLine();
serverP.WaitForExit();
}
プロセスの CPU と RAM の使用量を測定するにはどうすればよいですか?
serverP.WorkingSet64
、serverP.PrivateMemorySize64
およびを試しserverP.PagedMemorySize64
ましたが、すべて定数値を返します。それらのどれも変更されません (タスク マネージャーの RAM 使用量メーターなど)。
現在の CPU 使用率を取得する方法がわかりません。
インターネットで調べましたが、見つけたもののほとんどはPerformanceMonitor
. 「javaw」プロセスのインスタンスがさらに存在する可能性があるため、これを使用したくありません。上記のコードで作成した子プロセスの CPU と RAM の使用量を測定したいだけです。
どんな助けでも大歓迎です。