C ++: намеренное ограничение использования ЦП

В моей компании мы часто тестируем производительность наших устройств USB и FireWire при нагрузке на ЦП.

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

Я взглянул на код для этого, и это простой цикл, который увеличивает счетчик и выполняет вычисления на основе нового значения, сохраняя этот результат в другой переменной.

При запуске одного экземпляра будет использоваться 1 / X процессора, где X - количество ядер.

Так, например, если мы на 8-ядерном ПК и хотим увидеть, как наше устройство работает при загрузке ЦП на 50%, мы можем открыть четыре экземпляры этого сразу и так далее ...

Мне интересно:

  1. От чего зависит, какая часть процессора будет израсходована? он просто выполняет все так быстро, как только может в одном потоке в однопоточном приложении?

  2. Есть ли способ добровольно ограничить максимальное использование ЦП, которое может использовать ваша программа? Я могу придумать несколько "небрежных" способов (добавить команды сна или что-то в этом роде), но есть ли способ ограничить, чтобы сказать: какой-то указанный процент доступного процессора или что-то в этом роде?

6
задан Michael Petrotta 30 April 2011 в 03:31
поделиться