【发布时间】:2013-03-05 11:46:50
【问题描述】:
我有以下流程:
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 使用情况。
任何帮助将不胜感激。
【问题讨论】:
-
您是否尝试在每次想要获取 RAM 时从 PID 获取新的
Process对象? -
@ZoolWay 我不知道该怎么做。你能告诉我怎么做或者它是怎么叫的,以便我可以谷歌它吗?
标签: c# process cpu ram child-process