Сообщение от ABTOMAT
Блиц всю жизнь был однопоточный.
Ни hyper-threading, ни большое количество ядер процессора не смогут его заставить работать на больше чем одно ядро.
В лучшем случае будет Блиц на одном ядре, всё остальное — на другом (если их два).
|
Скрупулёзности ради:
физическое ядро, на котором крутится приложение может меняться операционной системой хоть каждый момент получения процессорного времени, если только не задана жёсткая привязка. (отсюда и известная проблема с QPC)
Опять-таки: что понимать под "блитц". Например, я всю логику (а она, в моей задаче, существенно тяжелее картинки) выпихивал в Си-шную DLL, там делал сколько надо потоков. Блитц, в "нужный момент" вызывал блокирующую функцию из длл-ки, которая поднимала volatile флаг, отслеживаемый потоками (вычисления шли беспрерывно) и уходила в спячку. Поток, обнаружив флаг, отгружал в память последние расчётные данные, опускал флаг и возбуждал событие, вызывающая функция просыпалась по событию и разблокировала выполнение Блитца. Память для обмена создавала длл-ка и сообщала адрес "блитцу".
Но если речь о рендере движком (а не подготовке данных для этого) - то да: блитц однопоточен.