Хороший способ сделать производительность, регистрирующую (C#)

Я пытаюсь получить некоторую подробную информацию производительности из приложения, которое разрабатывает моя компания. Примеры информации, которую я пытаюсь получить, были бы то, сколько времени сетевая транзакция берет, сколько ЦП/памяти использует приложение, сколько времени это берет, чтобы данный метод завершился и т.д.

У меня были некоторые неудачные попытки в этом в прошлом (как попытка измерить маленькие периоды времени при помощи DateTime. Теперь). К тому же я не знаю большую часть ничего о получении статистика памяти и ЦП. Есть ли какие-либо хорошие классы .NET, библиотеки или платформы там, которые помогли бы мне собрать этот вид информации и/или зарегистрировать его к текстовому файлу?

5
задан Phil 7 January 2010 в 04:49
поделиться

3 ответа

7
ответ дан 14 December 2019 в 04:39
поделиться

Счетчики производительности - это один из способов, и класс System.Diagnostics.Stopwatch является хорошим основополагающим местом для этого.

Со счетчиками производительности (помимо тех, которые предоставляются) вам нужно будет управлять как инфраструктурой отслеживания событий, так и отчетами о данных. Базовые классы счетчиков производительности предоставляют информацию о соединении для подключения к журналу регистрации событий, но вам нужно будет предоставить другую инфраструктуру отчетности, если вам нужно сообщить данные другим способом (например, в лог-файл или в базу данных).

Класс секундомера представляет собой обертку вокруг высокопроизводительного таймера, дающую разрешение в микросекундах или наносекундах в зависимости от процессора или платформы. Если вам не нужно такое высокое разрешение, вы можете использовать System.DateTime...Now.Tickks, чтобы получить текущий счетчик галочки для процессорных часов и сделать дифференциальную математику с этим, давая вам миллисекунды или bettter точность для большинства операций.

При отслеживании статистики процессора помните, что несколько процессоров и несколько ядер будут усложнять любую точную статистику в некоторых случаях.

Последнее предупреждение с счетчиками производительности, имейте в виду, что не все счетчики производительности находятся на всех машинах. Например, счетчики ASP.NET не присутствуют на машине, на которой не установлен IIS и т.д.

.
1
ответ дан 14 December 2019 в 04:39
поделиться

Для счетчиков производительности использования процессора/памяти. Для получения более подробной информации о конкретных методах (или строках кода) и конкретных объектах используйте профайлер. red-gate делает профайлер отличным.

http://www.red-gate.com/products/ants_performance_profiler

0
ответ дан 14 December 2019 в 04:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: