Не полная загрузка системы
Решил продолжить разработку своего хоррора.
Столкнулся с проблемой. Фпс конечно стабильный и высокий, Но загруженность цп/гпу всего 50-60%, оперативки свободно много, проект на ссд, подгрузок в риалтайме не делает. Собсно что может быть причиной такого поведения ? Как заставить игру юзать все ресурсы пк ? ОРИГИНАЛ СКРИНШОТА ТУТ https://www.dropbox.com/s/cizhygorht1svic/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2 02016-10-27%2023.47.35.png?dl=0 и более корректный https://www.dropbox.com/s/japxhmhtbv...28.22.png?dl=0 |
Ответ: Не полная загрузка системы
Delay(1) в цикл впердоль
|
Ответ: Не полная загрузка системы
Цитата:
|
Ответ: Не полная загрузка системы
А ты уверен что Xors3D + Blitz3D умеет мульти-поточно?
Если там и есть пару потоков, и они не динамично создаются, а изначально выделены под разные сферы, там может быть не эфективно распределено, и приводит к тому что не все ресурсы используются. Но я сомневаюсь что там вообще что-либо мульти-поточно. |
Ответ: Не полная загрузка системы
Нет, не та же.
Если убрать Delay, то будет сжираться всё процессорное время первого ядра как на первом скрине. |
Ответ: Не полная загрузка системы
Цитата:
Цитата:
Вангую ограничение ксорса. Но как его убрать... |
Ответ: Не полная загрузка системы
Минуточку, плохо прочитал первый пост:
Цитата:
|
Ответ: Не полная загрузка системы
В общем, хз как считает ProcessExplorer, но Msi afterburner показывает 100% нагрузку, что странно...
Еще вроде hyper threading делает свое дело и нагрузка идет не на 1 ядро а на 2. |
Ответ: Не полная загрузка системы
У тебя какой-то твининг используется (не знаю есть ли он в ксорсе)? Установи для него больше кадров в секунду.
|
Ответ: Не полная загрузка системы
Блиц всю жизнь был однопоточный.
Ни hyper-threading, ни большое количество ядер процессора не смогут его заставить работать на больше чем одно ядро. В лучшем случае будет Блиц на одном ядре, всё остальное — на другом (если их два). Если в Блице включена вертикальная синхронизация, то FPS ограничен 60 Гц, и, если кадр отрисовался быстрее, то Блиц будет просто ждать, пока не придёт время делать новый кадр и в этот момент процессор грузить не будет, поэтому при включённой ВС Блиц не может сожрать больше определённого процессорного времени. Если отключить, то будет жрать сколько найдёт (а надо ли?). |
Ответ: Не полная загрузка системы
|
Ответ: Не полная загрузка системы
Цитата:
Опять-таки: что понимать под "блитц". Например, я всю логику (а она, в моей задаче, существенно тяжелее картинки) выпихивал в Си-шную DLL, там делал сколько надо потоков. Блитц, в "нужный момент" вызывал блокирующую функцию из длл-ки, которая поднимала volatile флаг, отслеживаемый потоками (вычисления шли беспрерывно) и уходила в спячку. Поток, обнаружив флаг, отгружал в память последние расчётные данные, опускал флаг и возбуждал событие, вызывающая функция просыпалась по событию и разблокировала выполнение Блитца. Память для обмена создавала длл-ка и сообщала адрес "блитцу". Но если речь о рендере движком (а не подготовке данных для этого) - то да: блитц однопоточен. |
Ответ: Не полная загрузка системы
Ок, я говорил только про самый общий случай.
ЭЛТ-моник 120-герцовый сейчас мало у кого. Самодельные крестовые либы с потоками как правило тоже не рассматриваются |
Ответ: Не полная загрузка системы
|
Ответ: Не полная загрузка системы
|
Часовой пояс GMT +4, время: 15:49. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot