Как получить счетчик производительности приложения "байты во всех кучах" из кода во время выполнения? - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь получить конкретное приложение c, счетчик производительности «байт во всех кучах» во время выполнения. Категория счетчика - ". NET CLR Memory" Экземпляр приложения, представленный в окне счетчика производительности (см. Вложение). Но когда я пытаюсь получить значение из кода c# с помощью Object PerformanceCounter, я получаю сообщение об ошибке: «Экземпляр не существует в указанной категории».

мой код:

PerformanceCounter performaceCounter = new PerformanceCounter(".NET CLR Memory"
    , "# Bytes in all Heaps"
    , instanceName: "my app instance name"
);

1 Ответ

0 голосов
/ 28 мая 2020

На основании моего теста я могу успешно запустить код PerformanceCounter.

Попробуйте использовать Process.GetCurrentProcess().ProcessName для замены instance name.

Вы можете обратиться к следующему коду.

  private void button1_Click(object sender, EventArgs e)
    {
        PerformanceCounter PC = new PerformanceCounter(".NET CLR Memory", "# Bytes in all heaps", Process.GetCurrentProcess().ProcessName);
        MessageBox.Show(PC.NextValue().ToString());
    }

Из этого экземпляра я получаю некоторую информацию о NextValue.

enter image description here

...