Xamarin Forms: использование процессора и оперативной памяти программно - PullRequest
1 голос
/ 23 марта 2020

Я пытаюсь получить использование процессора и оперативной памяти моего приложения, я прихожу сюда, потому что я не могу это сделать ... Каждый раз, когда я получаю странное значение.

Я пробовал это (с форума 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...