Показать сообщение отдельно
Старый 29.10.2016, 02:01   #12
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Не полная загрузка системы

Сообщение от ABTOMAT Посмотреть сообщение
Блиц всю жизнь был однопоточный.
Ни hyper-threading, ни большое количество ядер процессора не смогут его заставить работать на больше чем одно ядро.
В лучшем случае будет Блиц на одном ядре, всё остальное — на другом (если их два).
Скрупулёзности ради: физическое ядро, на котором крутится приложение может меняться операционной системой хоть каждый момент получения процессорного времени, если только не задана жёсткая привязка. (отсюда и известная проблема с QPC)
Опять-таки: что понимать под "блитц". Например, я всю логику (а она, в моей задаче, существенно тяжелее картинки) выпихивал в Си-шную DLL, там делал сколько надо потоков. Блитц, в "нужный момент" вызывал блокирующую функцию из длл-ки, которая поднимала volatile флаг, отслеживаемый потоками (вычисления шли беспрерывно) и уходила в спячку. Поток, обнаружив флаг, отгружал в память последние расчётные данные, опускал флаг и возбуждал событие, вызывающая функция просыпалась по событию и разблокировала выполнение Блитца. Память для обмена создавала длл-ка и сообщала адрес "блитцу".
Но если речь о рендере движком (а не подготовке данных для этого) - то да: блитц однопоточен.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
ABTOMAT (29.10.2016), Arton (29.10.2016), DarkInside (04.11.2016), RegIon (29.10.2016), St_AnGer (29.10.2016)