Я пытаюсь получить использование процессора и оперативной памяти моего приложения, я прихожу сюда, потому что я не могу это сделать ... Каждый раз, когда я получаю странное значение.
Я пробовал это (с форума Xamarin ), но мне нужно использовать StopWatch каждый раз, и это не похоже на использование моего процессора:
var proc = System.Diagnostics.Process.GetCurrentProcess();
Console.WriteLine("STATS|CPU={Cpu}%|Mem={Mem}", (int)(100 * proc.TotalProcessorTime.TotalMilliseconds / beginSW.ElapsedMilliseconds), proc.WorkingSet64);
Пытался использовать PerformanceCounter, но он не работает ...
У всех есть решение получить использование процессора и оперативной памяти?
Спасибо!
РЕДАКТИРОВАТЬ: Я сделал что-то вроде этого, но это не совсем точно, потому что я сравниваю масштабированный процессор и информационный процессор ...
public string GetProcess()
{
var result = "";
var index = 0;
for (var i = 0; i < 8; i++)
{
try
{
index = i;
var readerCurFreq = new RandomAccessFile($"/sys/devices/system/cpu/cpu{i}/cpufreq/scaling_cur_freq", "r");
var readerMaxFreq = new RandomAccessFile($"/sys/devices/system/cpu/cpu{i}/cpufreq/cpuinfo_max_freq", "r");
var curfreg = readerCurFreq.ReadLine();
var maxfreg = readerMaxFreq.ReadLine();
var currentFreq = double.Parse(curfreg) / 1000;
var maxFreq = double.Parse(maxfreg) / 1000;
readerCurFreq.Close();
readerMaxFreq.Close();
var cpu = currentFreq * 100 / maxFreq;
result += $"CPU{i}: {cpu}%\n";
}
catch (Exception)
{
result += $"CPU{index}: NO VALUES\n";
}
}
return result;
}