在单声道中获取处理器时间百分比
Get % Processor Time in Mono
我正在开展一个项目,该项目需要监控 cpu 的使用百分比。它必须在 Mac 和 Windows 上,所以我使用的是 Mono 和 Xamarin。
我用来获取这个的代码是(这是一个测试,但计数器是一样的):
var cpuCounter = new PerformanceCounter
{
CategoryName = "Processor",
CounterName = "% Processor Time",
InstanceName = "_Total"
};
cpuCounter.NextValue ();
Thread.Sleep (1000);
for (var i = 0; i < 50; i++) {
Console.WriteLine (cpuCounter.NextValue());
Thread.Sleep (1000);
}
在电脑上,returns任务管理器显示的内容。在 mac 上,这个 returns 100 每次跳动,即使 activity 监视器显示不同。
我试过谷歌搜索,但似乎没有任何效果。
想法?
我们遇到了类似的问题。我们解决它的方法是编写脚本。我将在脚本中共享代码。以及我们从 Mono 调用它的方式。
脚本(我们称它为 getCPU.sh 并将其保存在 /Library/Application Support/UniqueApp)
#!/bin/bash
ps x -o pcpu,comm | grep UniqueApp
单声道代码 -
var psi = new ProcessStartInfo("/bin/sh", "\"/Library/Application Support/UniqueApp/getCPU.sh\"")
{
RedirectStandardOutput = true,
UseShellExecute = false
};
Process p = Process.Start(psi);
string outString = p.StandardOutput.ReadToEnd();
p.WaitForExit();
outString = outString.Substring(0, 5).Trim()
outString 将具有 UniqueApp
使用的 CPU 百分比
如果您希望整个机器的 CPU 百分比更改 getCPU.sh 以包含以下代码 -
#!/bin/bash
ps x -o pcpu | tail -n+2| awk '{s+=} END {print s}'
我正在开展一个项目,该项目需要监控 cpu 的使用百分比。它必须在 Mac 和 Windows 上,所以我使用的是 Mono 和 Xamarin。
我用来获取这个的代码是(这是一个测试,但计数器是一样的):
var cpuCounter = new PerformanceCounter
{
CategoryName = "Processor",
CounterName = "% Processor Time",
InstanceName = "_Total"
};
cpuCounter.NextValue ();
Thread.Sleep (1000);
for (var i = 0; i < 50; i++) {
Console.WriteLine (cpuCounter.NextValue());
Thread.Sleep (1000);
}
在电脑上,returns任务管理器显示的内容。在 mac 上,这个 returns 100 每次跳动,即使 activity 监视器显示不同。
我试过谷歌搜索,但似乎没有任何效果。
想法?
我们遇到了类似的问题。我们解决它的方法是编写脚本。我将在脚本中共享代码。以及我们从 Mono 调用它的方式。
脚本(我们称它为 getCPU.sh 并将其保存在 /Library/Application Support/UniqueApp)
#!/bin/bash
ps x -o pcpu,comm | grep UniqueApp
单声道代码 -
var psi = new ProcessStartInfo("/bin/sh", "\"/Library/Application Support/UniqueApp/getCPU.sh\"")
{
RedirectStandardOutput = true,
UseShellExecute = false
};
Process p = Process.Start(psi);
string outString = p.StandardOutput.ReadToEnd();
p.WaitForExit();
outString = outString.Substring(0, 5).Trim()
outString 将具有 UniqueApp
使用的 CPU 百分比如果您希望整个机器的 CPU 百分比更改 getCPU.sh 以包含以下代码 -
#!/bin/bash
ps x -o pcpu | tail -n+2| awk '{s+=} END {print s}'