Какова история счетчиков производительности для .NET Core?

Под Windows можно прочитать счетчики производительности .NET, используя следующее:

  • Монитор производительности
  • С# с использованием PerformanceCounter
  • WMI и запросы к классам, связанным с .NET

Учитывая недавний выпуск .NET Core и тот факт, что такое приложение также может работать в Linux, как можно получить доступ к статистике, связанной с .NET, доступной в настоящее время в Windows?


person MaYaN    schedule 30.06.2016    source источник
comment
Я считаю, что это открытый исходный код, поэтому вы можете искать на GitHub.   -  person Lex Li    schedule 30.06.2016
comment
Доступны ли счетчики производительности? проблема: github.com/aspnet/Home/issues/1319   -  person Set    schedule 30.06.2016
comment
Ничто не мешает вам использовать специфичные для Windows функции, когда вы работаете в Windows. Конечно, запрос счетчиков производительности не будет работать при развертывании в Linux, но если вы не выполняете развертывание в Linux, это не имеет значения. Кроссплатформенность — это хорошо, но гибкость еще лучше. Отказ от функций для достижения идеальной кросс-платформенной системы на самом деле не является прогрессом. Вы можете написать код самостоятельно. Возможно, со временем кто-нибудь напишет модуль для Linux, реализующий счетчики производительности в стиле Windows.   -  person Cody Gray    schedule 01.07.2016
comment
таргетинг только на Windows не вариант, так как мне нужно также охватить Linux. Самостоятельное написание кода — это вариант costly, учитывая, что для этого требуются навыки C и/или C++, поэтому задайте этот вопрос, чтобы уточнить, есть ли у Microsoft какой-либо план по предоставлению аналогичного метода достижения того, что мы уже можем делать в Windows.   -  person MaYaN    schedule 01.07.2016
comment
Вы также можете подписаться на этот выпуск: github.com/dotnet/corefx/issues/9376, может или не может быть реализована инфраструктура счетчиков производительности для совместимости с настольными компьютерами, это помечено как функция.   -  person boades    schedule 29.07.2016
comment
Redhat является соавтором, и я хотел бы увидеть использование Счетчики производительности для Linux   -  person Phillip Scott Givens    schedule 14.08.2016


Ответы (4)


Этот пакет полностью эквивалентен счетчикам производительности .NET Framework и может использоваться в приложениях .NET Core под Windows:

https://www.nuget.org/packages/System.Diagnostics.PerformanceCounter/< /а>

person Mahdi Ataollahi    schedule 24.08.2019

В пакете совместимости Windows для .NET Core будет поддержка счетчиков производительности.

https://www.nuget.org/packages/Microsoft.Windows.Compatibility

https://blogs.msdn.microsoft.com/dotnet/2017/11/16/announcing-the-windows-compatibility-pack-for-net-core/

Конечно, пока это функция только для Windows.

person NickD    schedule 21.08.2018
comment
Может помочь другим людям, но ОП специально заявил, что все еще хочет ориентироваться на Linux. - person Damien_The_Unbeliever; 21.08.2018

Счетчики производительности отсутствуют в Linux, поэтому их нет в NET Core. Создайте еще одно «вспомогательное приложение на основе Full NET», чтобы предоставить счетчики производительности в качестве службы для «NET Core Application».

person SACn    schedule 25.02.2017
comment
MaYaN уже сказал, что таргетинг только на Windows не вариант. - person Digicoder; 13.04.2017

Вы можете попробовать использовать трассировку оракула в Linux. Перед первым подключением напишите это:

OracleConfiguration.TraceFileLocation = "/app/trace";
OracleConfiguration.TraceOption = 0;
OracleConfiguration.TraceLevel = 1;
person DerSkythe    schedule 14.12.2020