Я написал многопоточную программу, которая выполняет некоторые тяжелые вычисления с большим количеством операций с плавающей запятой. В частности, это программа, которая сравнивает последовательности анимации кадр за кадром. То есть он сравнивает данные кадра из анимации A со всеми кадрами в анимации B для всех кадров в анимации A. Я выполняю эту интенсивную операцию параллельно для различных анимаций, поэтому программа может работать с парой AB, парой BC и парой CA в параллельно. Программа использует QtConcurrent и функцию «map», которая отображает контейнер с движениями на функцию. QtConcurrent управляет пулом потоков для меня, я работаю на процессоре Intel Quad Core, поэтому он порождает 4 потока.
Теперь проблема в том, что мой процесс разрушает мой процессор. Использование является постоянным на 100%, и я на самом деле получаю «Синий экран смерти», если запускаю свою программу с достаточно большим набором движений (ошибка страницы в невыгружаемой области). Я подозреваю, что это потому, что мой компьютер разогнан. Однако может ли это быть из-за того, как я кодировал свою программу? Некоторые очень интенсивные тестовые инструменты, которые я использовал для проверки стабильности своей машины, никогда не ломали мой компьютер. Есть ли способ контролировать, как моя программа использует мой процессор для снижения нагрузки? Или, может быть, я неправильно понимаю свою проблему?