Получите использование жесткого диска системы с C ++ - PullRequest
1 голос
/ 13 февраля 2012

Мне было интересно, возможно ли это в неуправляемом коде C ++?

Я пишу программу, которая показывает текущее использование процессора в системе, но я заметил, что на некоторых новых рабочих столах, когда некоторые долгоВ процессе работы диска (скажем, как в фоновом процессе резервного копирования) загрузка ЦП остается очень низкой (менее 10%), но система работает несколько медленно.Поэтому я подумывал добавить в свою программу текущее использование жесткого диска в масштабе всей системы, я просто не уверен, какой API использовать для этого.

1 Ответ

1 голос
/ 13 февраля 2012

Вы ищете счетчик производительности «% Disk Time». Это указывает на (усредненную) долю времени, в течение которого диск занят обслуживанием запросов. Если он близок к 100%, то процессор, вероятно, будет сильно ждать завершения ввода-вывода.

Другой вариант - «Текущая длина очереди диска». Это указывает на количество ожидающих запросов, что, в свою очередь, является мерой избыточных операций (выполненных операций - выполненных операций). Если в очереди нет ожидающих операций, процессор не ожидает диск; если есть тонны, то процессор не имеет ничего общего.

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

...