Вход/Регистрация
C# для профессионалов. Том II
вернуться

Ватсон Карли

Шрифт:

 this.performanceCounterRequestsTotal.CounterName =

"# of Requests";

 this.performanceCounterRequestsTotal.Readonly = false;

 // ...

Счетчики производительности, которые показывают общие значения, увеличиваются в методе

Listener
класса
QuoteServer
. Метод
Increment
увеличивает счетчик на 1, метод
IncrementBy
увеличивает счетчик на значение аргумента.

Для счетчиков производительности, которые показывают посекундные значения, в методе

Listener
обновляются только две переменные —
requestPerSec
и
bytessPerSec
:

void protected void Listener {

 try {

listener = new TCPListener(port);

listener.Start;

while (true) {

Socket socket = listener.Accept;

if (socket == null) {

return;

}

string message = GetRandomQuoteOfTheDay;

UnicodeEncoding encoder = new UnicodeEncoding;

byte [] buffer = encoder.GetBytes(message);

socket.Send(buffer, buffer.Length, 0);

socket.Close;

performanceCounterRequestsTotal.Increment;

performanceCounterBytesSentTotal.IncrementBy(nBytes);

requestsPerSec++;

bytesPerSec += Bytes;

}

 } catch (Exception e) {

string message = "Quote Server failed in Listener: " + e.Message;

eventLog.WriteEntry(message, EventLogEntryType.Error);

 }

}

Чтобы показывать обновленные значения каждую секунду, используется компонент

Timer
. Метод
OnTimer
вызывается раз в секунду и задает счетчики производительности с помощью свойства
RawValue
класса
PerformanceCounter
:

protected void OnTimer(object sender, system.EventArgs e) {

 performanceCounterBytesSentPerSec.RawValue = bytesPerSec;

 performanceCounterRequestsPerSec.RawValue = reguestsPerSec;

 bytesPerSec = 0;

 requestsPerSec = 0;

}

perfmon.exe

Теперь можно контролировать нашу службу. Утилита Performance может запускаться из Administrative Tools|Performance. Нажимая кнопку + в панели инструментов, можно добавить счетчики производительности. Quote Service будет определяться как объект производительности. Все сконфигурированные счетчики показаны в списке счетчиков:

После добавления счетчиков можно увидеть счетчики нашей службы в ходе времени. Используя эту утилиту производительности, можно также создать файлы журналов для последующего анализа производительности.

Служба счетчика производительности

Если не существует ссылки на объект счетчика производительности, и объект был удален сборщиком мусора, счетчик этого объекта теряется и запускается в следующий раз с 0. Чтобы решить эту проблему, состояние можно хранить в службе счетчиков производительности. С помощью .NET Framework служба счетчиков производительности устанавливается в системе. Необходимо только запустить службу; можно также сконфигурировать службу для автоматического запуска во время начальной загрузки системы.

Свойства служб Windows 2000

Windows 95, 98 и ME не поддерживают службы Windows. Они поддерживаются в Windows NT, Windows 2000 и Windows ХР. Windows 2000 имеет несколько больше свойств для служб по сравнению с Windows NT. Рассмотрим свойства служб в Windows 2000.

Изменения сетевого соединения и события электропитания

В Windows 2000 не требуется, чтобы система перезагружалась так часто, как это было необходимо в Windows NT; например, не нужно перезагружать систему, когда изменяется адрес IP, — служба получает события при смене адреса и действует соответственно. Windows 2000 посылает следующие управляющие коды службам, когда изменяется сетевое соединение:

Управляющий код
SERVICE_CONTROL_NETBINDADD
Доступен новый компонент для соединения.
SERVICE_CONTROL_NETBINDREMOVE
Компонент для соединения был удален. Необходимо заново считать информацию соединения и отсоединиться от удаленного компонента.
SERVICE_CONTROL_NFTBINDENABLED
Ранее отключенное соединение снова включено.
SERVICE_CONTROL_NETBINDDISABLE
Ранее включенное соединение теперь отключено.
  • Читать дальше
  • 1
  • ...
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: