Счетчики производительности - это один из способов, и класс System.Diagnostics.Stopwatch - это хорошее место для поиска таких возможностей.
С помощью счетчиков производительности (помимо предоставленных) вам потребуется управлять как инфраструктурой отслеживания событий, так и составления отчетов о данных. Базовые классы счетчика производительности предоставляют сведения о соединении для подключения к журналу событий, но вам потребуется предоставить другую инфраструктуру отчетов, если вам нужно сообщить данные другим способом (например, в файл журнала или базу данных).
Класс секундомера - это оболочка для высокопроизводительного таймера, обеспечивающая разрешение в микросекундах или наносекундах в зависимости от процессора или платформы. Если вам не нужно такое высокое разрешение, вы можете использовать System.DateTime..Now.Ticks, чтобы получить текущий счетчик тактов для тактовой частоты процессора и выполнить дифференциальную математическую обработку с этим, давая вам точность в миллисекундах или выше для большинства операций.
При отслеживании статистики ЦП следует помнить, что несколько процессоров и несколько ядер усложнят любую точную статистику в некоторых случаях.
Еще одно предостережение относительно счетчиков производительности, имейте в виду, что не все счетчики производительности есть на всех машинах. Например, счетчики ASP.NET отсутствуют на компьютере, на котором не установлен IIS и т. Д.