>>3011528 (OP) >Почему старые программы и игры однопоточные Потому что так их писали, и потому что тогда были только однопоточные процы.
>мой проц все ядра в работе юзает а не одно операционка раскидывает программы по ядрам.
>И как узнать сколько ядер нужно конкретной игре? 2, 4, а может игре 6 надо? См. системные требования игр. Ну и просто на практике смотри, сколько игра использует. Одни игры пытаются все доступные заюзать, другие только ограниченное количество.
>>3012359 лупенек тупой, винда твоя, проводник, антивирь, браузер с порнушкой, засширение VPN в браузере, чтобы порнушку смотреть. Открой диспечер задач винды, там кроме твоей игры, задрот малолетний, еще 30-40 постоянно висящих процессов есть, они и раскиданы по разным ядрам.
>>3012485 Блять, смотри, в простое 1% проц хавает, а запускаю игру старую 2000 года и проц все 16 потоков блять грузит под 80%, чё хочеш сказать антивирус внезапно проснулся как я начал играть и проводник и жрать все потоки???
>>3011528 (OP) >как узнать сколько ядер нужно конкретной игре? У меня в одной игре cpu0 въябывал как Вася, а остальные 3 простаивали (4 ядра). Убрал игре cpu0, нагрузка распределилась равномерно по остальным трём ядрам. Сейчас игра обновилась, и такую возможность заблочили. Я до сих пор не понимаю почему. мимопроходил
>>3013767 >Очень блять смешно А ты таблеточки прими, чтобы от пальчика не смеяться. Неравномерный нагрев кристалла серьезная проблема. Не говоря уже о том, что, такая тактика позволяет держать температуру ядер ниже, что положительно сказывается на производительности, турбо бусты всякие за счет этого выезжают.
>>3013908 >Не так, нужно чтобы каждое ядро было мощное, а не куча говноядер. Не так, нужны программисты, которые бы кодили нормальный код. Но вначале нужны гейм дизайнеры, которые бы могли создавать игры, а не мыльное кинцо.
>>3013767 > Блять, смотри, в простое 1% проц хавает, а запускаю игру старую 2000 года и проц все 16 потоков блять грузит под 80% Наверно это старый код, который эмулируется, он хоть и менее требователен, но ОС исполняя его, на каждое ядро кидает свою подсистему для эмуляции работы с этим кодом. Например раньше код был в ядре ОС, сейчас часть вынесли, а эмулировать его тоже надо как-то. Потом не забывай, что весь этот код надо синхронизировать между собой как-то. Вот и выходит, что ядра забиты. >>3013767 >Очень блять смешно Ничего смешного, в зависимости от сценария нагрузки, планировщик ОС исполняя потоки, может принудительно мигрировать процессы между ядрами для этих целей.
>>3013927 > Не так, нужны программисты, которые бы кодили нормальный код. А тыв готов платить за игру больше чем 2300? Хорошие программисты стоят дохуя денег и кодят на говноджаве энтерпрайз приложухи для работы с терабайтами данных в секунду. Игропром такое просто не потянет.
>>3014051 >А тыв готов платить за игру больше чем 2300? Долларов? Бред какой, качество кода, не толь ко в играх, не зависит от платежеспособности потребителя. 15 лет назад этот рынок был крохотным, в сравнении с современной ситуацией его вообще не было, и тем не менее код был куда лучше.
>Хорошие программисты стоят дохуя денег и кодят на говноджаве энтерпрайз >Хорошие программисты >кодят на говноджаве Ты чет путаешь.
>Игропром такое просто не потянет. С его то оборотом в триллионы долларов?
>>3014111 > Бред какой, качество кода, не толь ко в играх, не зависит от платежеспособности потребителя. От плптежеспособности потребителя зависит все. Есть икра осетровая, а есть белковая. Вторую может себе позволить любой гружчик. Но поверь, разница есть. Хорошую программу должна писать команда хороших программистов. А взлетит игра или не вздетит контора еще не знает. Поэтому маусимально снижаются издержки. Набирают не дорогих и опытных, а дешевых джунов. > и тем не менее код был куда лучше Ты можешь мне показать код 15 летней давности? Раньше все было куда проще. Интернет был дорогой и не везде. Поэтому патчи распространять было сложно и дорого. Поэтому вкладывалсь в тестирование. Сейчас нормой стали патчи "нулевого дня". Когда ошибки правят уже после того как ты оплатил игру и установил ее на комп. А разраб все еще латает дыры, потому что джуны работают за еду. > Ты чет путаешь. Нет, это ты чего то путаешь. В конторе где я работал программисты получали в 2.5 раза меньше чем администраторы sql баз. Потому что похуй если прога крашнется, клиенту скажут ждите патча. А вот если наебнуться данные в базе, то фирма влетит на бабки. Суровые реалии жизни. > С его то оборотом в триллионы долларов? Разоработчик с этих триллионов получает гроши. Засть забирает гейб, часть издатель, часть на пиар. Самой конторе перепадает в лучшем случае половина, но на зп именно программистов идут гроши от этой суммы. Реклама важнее качества.
Бля вы меня не слышите, у меня любая игра, любая прога юзает все 16 потоков, вот какого хуя? Вот как мне бля узнать что мне хватит и 8 потоков допустим?
Хорошо спрошу по другому - програмисты в своих программах и играх как реализуют многопоток? Они вручную ставят цыферку сколько ядер нагружать или у них универсальная переменная там есть?
>>3015169 При написании многопоточных приложений никто адекватный не будет жёстко хардкодить кол-во потоков. Делается гораздо проще, у ОС есть пул потоков (не путать поток, как объект ОС и поток у процессора), она сама управляет размером этого пула. Когда тебе нужно распараллеливания задачи, ты просто берешь поток из пула (как я уже сказал, размером пула управляет ОС). Обычно не выгодно запускать параллельных задач больше, чем кол-во потоков процессора - 1. Итого: чем больше потоков процессора, тем больше параллельных задач можно запускать, уменьшить кол-во потоков процессора - меньше задач смогут работать параллельно (например, системные задачи, могут делить потоки с задачами игры и тормозить просчет игровой логики)
>>3015169 >Бля вы меня не слышите, у меня любая игра, любая прога юзает все 16 потоков, вот какого хуя? Тебе уже ответили несколько раз: >>3013931 >Особенность виндового шедуела.
>>3015169 >Вот как мне бля узнать что мне хватит и 8 потоков допустим? Хватит для чего?
>Хорошо спрошу по другому - програмисты в своих программах и играх как реализуют многопоток? Через апи ОС. Вызывают специальную функцию из ядра ОС, передают в нее код на выполнение, ОС создает новый поток и исполняет в нем код.
>Они вручную ставят цыферку сколько ядер нагружать Зависит от того что и как делает приложение. То есть от ситуации.
>или у них универсальная переменная там есть? Многопоточность это сложная вещь, ты не можешь просто поставить где-то циферку, и опа, твое приложение стало многопоточным, нужно переписывать его с нуля.
>>3013955 Скорее не старый код, это потоки драйверов устройств, дергаемые из библиотек функции (d3d например), которые шедулер кидает в разные потоки, больше от ОС зависит. А вот если как в упомянутой арме, не оценить время исполнения различных потоков или точить под 2-4 параллельных, то на 6 и больше будет пиздец, ядро отработало инструкцию и десяток-другой тактов ждёт, когда другой поток заберёт результат, и он же, или третий поток даст ему данные/инструкцию для следующей итерации.
>>3015997 На самом деле это был камень в огород кривого движка Армы и её производных на том же движке. Любое другое говно любой давности на этом камне полетит.
>>3016108 >Любое другое говно любой давности на этом камне полетит. А вот внезапно нет. Еще и на видеокарту многое видимо завязано. Старые игрушки любят оптимизации под некрожелезо, которое, тогда, давно, не было все таким унифицированным как сейчас. И, таки, вот, ЛАТЕНТНОСТЬ доступа к памяти и выполнения инструкция возросла в современных процессорах. Это неизбежность гетерогенных архитектур. Современный проц конечно в тысячу раз больше инструкций может выполнить в единицу времени, а вот когда речь об одной единственной инструкции в один поток - сразу видно что король голый.
Всё ясно, значит для игр по факту 2-4 ядра нужно, чем больше не значит лучше, начит можно ещё лет 20 брать сугубо 4 ядерники, не переплачивая за 8/16, 16/32.
>>3016539 Ага, «640 килобайт хватит всем». Время не стоит на месте, да и нормальные игори параллелятся на раз. Та же GТА V нормально раскидывается на все эти сотни ядер.
>>3013767 >в простое 1% проц хавает, а запускаю игру старую 2000 года и проц все 16 потоков блять грузит под 80% давай сюда два скрина диспетчера задач: 1. С графиками 2. С вкладкой с процессами, с сортировкой по ЦП по убыванию.
>>3011528 (OP) Потому что твоя драгоценная видимокарта - железка крайне тупая и ничего толком не умеет, кроме как очень-очень быстро и в промышленных масштабах считать всякую линейную алгебру и тригонометрию. В том числе и управлять процессом рендеринга, подготавливать данные, выделять/освобождать память, etc. Твой игродел в своем потоке вызвал какой-нибудь glDrawArrays и в хуй не дует, а драйвер видеокарты в это время скачет кабанчиком. А планировщик CPU в операционке вешает всю эту суету на другое свободное ядро.
Почему старые программы и игры однопоточные, а мой проц все ядра в работе юзает а не одно?
И как узнать сколько ядер нужно конкретной игре? 2, 4, а может игре 6 надо?