Использование процессора эквивалентно сканированию жесткого диска - PullRequest
2 голосов
/ 19 августа 2009

Мне бы хотелось, чтобы мое программное обеспечение, которое сканирует структуру диска, работало в фоновом режиме, но понижало приоритет для потока, который сканирует структуру диска, не работает. Я имею в виду, что вы все еще чувствуете, что компьютер работает и даже зависает, даже если ваша программа потребляет всего 1 процент процессорного времени. Возможно ли реализовать «потребление времени жесткого диска», эквивалентное потреблению процессора в Win32

Ответы [ 2 ]

5 голосов
/ 19 августа 2009

Начиная с Vista, вы можете снизить приоритет ввода-вывода, который отделен от приоритета процессора. http://msdn.microsoft.com/en-us/library/ms686219(VS.85).aspx

SetPriorityClass(GetCurrentProcess(), PROCESS_MODE_BACKGROUND_BEGIN)

В XP, 2003 и более ранних версиях вам нужно было бы найти какой-то другой способ ограничения активности диска, например, частое использование Sleep ().

1 голос
/ 19 августа 2009

Доступ к диску обычно измеряется несколькими различными показателями передачи в секунду (которые можно разбить на чтение / запись) и чтением или записью данных в секунду. Если вы хотите ограничить влияние приложения для сканирования дисков, один из способов сделать это - отследить одну (или обе) из этих метрик, определить разумный предел и периодически приостанавливать поток в течение некоторого периода времени. Ничто из того, что вы можете сделать с планированием ЦП, не будет эффективным для выполнения этой задачи, кроме как самым косвенным, косвенным образом.

...