2

Я пишу приложение на C++ с использованием Visual Studio 2013. Приложение перебирает изображение, выполняя сложный анализ. Анализ не особенно медленный, но чтобы проверить эффективность кода, я запускаю анализ (скажем) 100 раз и вижу, сколько времени это займет. Затем я изменяю код, перезапускаю тест и вижу, есть ли улучшение (или снижение) производительности.

Проблема в том, что, хотя у меня есть мощный 4-ядерный i5 (i5-4200U @ 1.6 ГГц, если быть точным) и много оперативной памяти, общее использование ЦП никогда не превышает 30%. Мой процесс никогда не выходит за пределы 29,5%. Я попытался установить приоритет класса моего приложения на "Высокий", и это не помогает. Нет доступа к диску и сети, все в памяти (и около 5 Гбайт памяти).

Это какой-то секретный параметр Windows 8.1, позволяющий ограничить загрузку ЦП процессом (чтобы сохранить производительность)? Могу ли я изменить это программно или через какой-то апплет Панели управления (возможно, установить более высокий лимит использования ЦП)?

1 ответ1

4

Ваше приложение, скорее всего, однопоточное. Таким образом, он может использовать только одно ядро процессора.
Поскольку у вас 4 ядра ЦП, он использует 1/4 ЦП, что означает примерно 25%.

Чтобы использовать ваш процессор до 100%, вам необходимо изменить приложение для использования многопоточности (если это возможно). Не все проблемы могут быть решены многопоточным способом. Так что это зависит от того, что вы на самом деле делаете.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .