поскольку данная тема периодически востребована и дабы не плодить "бесплодное множество" оставлю это здесь
тем более что это "про память"
Оптимизация конфигурации запуска игры
==========================================
отдельная благодарность за создание
темы на Форуме SCS пользователю room217au
особая признательность сотрудникам SCS Software: Komat, Max и др. - за помощь и участие в дискуссии
итак, параметры:
-mm_max_resource_size:
-mm_max_tmp_buffers_size:
------------------------------------------
Важно: как и любые пользовательские параметры конфигурации, они применяются на свой страх и риск.
------------------------------------------
Как активировать:
1) Откройте консоль разработчика в игре и введите их напрямую. Вы должны будете делать это каждый раз, после запуска игры.
или
2) Если вы являетесь пользователем Steam, вы можете добавить их к параметрам запуска, щелкнув правой кнопкой мыши на игре в вашей библиотеке, выбрав "Настройки", а затем прописать в окне после нажатия кнопки "Установить параметры запуска". Это означает, что параметры автоматически включаются при каждом воспроизведении.
или
3) Соответственно изменив свой альтернативный способ запуска игры (для продвинутых пользователей это, скорее всего не интересно, так как они уже всё сделали самостоятельно).
Значения по умолчанию:
-mm_max_resource_size: 22
[в мегабайтах(Мb) - Это выделение памяти (предельный размер временных буферов-блоков) для любого ресурса (это может быть .pmg-файл или большая текстура .DDS-файл). Если какой-либо из файлов больше 22 Мб, игра просто выделяет на него больше "блоков" размером по 22 Мб.]
Maximal value: 100 - максимально поддерживаемое количество буферов-блоков
-mm_max_tmp_buffers_size: 112
[Размер всего буферного массива в Мb]
Maximal value: 1000 - максимальный размер (~1 Гб)
Расчеты количества блоков-буферов:
mm_max_tmp_buffers_size / mm_max_resource_size = количество временных загрузочных буферов
Можно проверить их количество, посмотрев значение "х" в строке
"Allocated X temporary loading buffer(s)"
в начале журнала лога игры.
Из формулы можно подумать, что размер буфера 500 и ресурса 50 приведет к 10 блокам, но это не так, мы увидим "9" блоков. Это связано с тем, что для каждого буфера существует определенная дополнительная нагрузка.
как пример, прописываем:
-mm_max_resource_size 44 -mm_max_tmp_buffers_size 484
и в результате 10 буферов загрузки вместо стандартных 5
[mem] Allocated 10 temporary loading buffer(s)
или
mm_max_resource_size 40 -mm_max_tmp_buffers_size 1000
и получаем [mem] Allocated 24 temporary loading buffer(s), т.е. 24 буфера.
прописка
mm_max_resource_size 150 -mm_max_tmp_buffers_size 3000
даст не 19 (3000/150)-1, а только (1000/100)-1=9 блоков, т.к. параметры вышли за максимальные пределы, об этом надо помнить.
-------------------
Изменение (увеличение) этих двух параметров действительно ускоряет загрузку игры, и применимо даже со стандартными игровыми моделями и полностью дефолтной игрой.
Итак, что лучше?
Много мелких буферов или меньше, но более крупных? Это зависит от обстоятельств, от ваших модов: нужно ли вам загружать большие вещи(файлы, текстуры) или много мелких вещей быстро, т.е. сразу.
Объём из более мелких буферов обрабатывается игрой на 5-10% быстрее, чем тот же самый общий объём из более крупных буферов. Это общее правило работы с массивами данных.
Очевидно, что если размер одного буфера больше, чем самый большой ресурс(текстура) - то такой буфер избыточен(бесполезен). Размер буфера по умолчанию 22Mb не случаен, так как самая большая дефолтная текстура имеет размер ~20Mb.
По умолчанию размер всего буферного массива составляет 112Mb, что дает нам 5-ть буферов для примерно 5-ти асинхронно загружаемых в один момент элементов. Если их будет больше, они должны подождать в очереди. Если элемент большой, больше 22Mb, выводится предупреждение и игра пытается выделить под него больше последовательных буферов из массива, что может привести к небольшому отставанию(заиканию игры).
Для модов на количество(увеличение) трафика, для карт с большим количеством статических моделей - желательно иметь больше буферов.
Для модов с "тяжёлыми" текстурами, например модели грузовиков или некоторые погодные моды - лучше увеличить размер каждого отдельного буфера.
Универсального ответа как видите нет, но можно поискать компромисс исходя из ИНДИВИДУАЛЬНОЙ конфигурации вашего компьютера и набора модов.
И последнее - а для чего мы всё это затевали?
Наверное только лишь для того, чтобы поиграть с "тяжёлыми" модами и ..возможно,
слегка оптимизировать своё железо под дефолтную игру.
Хотя.. Это поможет устранить "заикания", слегка повысит FPS, поможет сделать игру более ровной.
Сообщение отредактировал dobr4060: 28 Ноябрь 2019 - 00:16