ASI DynamicStreaming

ForestLive

Известный
40
4
Какая версия в первом или в теме актуальная?
 

Alexander822

Известный
203
35
Я правильно понял?
Тип он может и уменьшать и давать больше озу игре?
даже 4 гб?
 

Northrop Grumman

Известный
475
126
Шикарный плагин, автору счастья здоровья, в связке с мем редуктом нереально забить память
 

Dffdff

Участник
46
4
Шикарный плагин, автору счастья здоровья, в связке с мем редуктом нереально забить память
Не знаю, для гетто сборок возможно. На моей сборке с 11.6 Гб модлоадере все равно краш через 5 мин. Но зато с memory clean.lua с ручной очисткой могу играть 70 мин без захода в интерьер. Тоесть в сингле достаточно чтобы пройти миссию медика, таксиста, тоесть самые длинные. Но приходитьсЯ жмякать кнопку. Жаль SR team не хочет пофиксить свой плагин. Хотя ему уже двое людей писало с большими сборками что все равно крашит... Ждём-с когда он разберётся в чем дело
 

Diego_Sativa

Известный
575
60
Плагин динамически меняет количество стриминг памяти, а так же чистит ее при заполнении не удаляя объекты, которые вы видите на экране.

Посмотреть вложение 112629

По умолчанию в игре ограничено количество памяти, которое используют объекты на экране. В SA:MP это ограничение повышено, но при использовании сборок даже повышенного ограничения бывает недостаточно.

Что происходит, когда игра достигает ограничения
Игра начинает удалять из памяти более старые объекты, но если ограничение маленькое, то могут исчезать объекты с экрана.

Почему обычное увеличение лимита не спасает от лагов
Для загрузки новых объектов, которые надо нарисовать игра удаляет старые, но ровно столько, что бы хватило на загрузку новых. В итоге при заполненной памяти, игра при загрузке новых объектов каждый раз удаляет старые и грузит новые с диска, а это медленно.

Почему нельзя выделить памяти больше, чем размер gta3.img, что бы все объекты были в памяти
Игра 32-битная, это значит, что она использует 32-битные регистры и инструкции процессора. Это значит, что максимальный адрес в памяти к которому игра может обратиться это 32 единицы в двоичной системе счисления, что равно 4 гигабайтам. Однако и 4гб игре не доступны, потому что число может быть не только положительным, но и отрицательным, а это значит, что среди 32 единиц и нолей одна цифра должна означать знак +/-. Следовательно на адреса в памяти остается 31 бит - 31 единица это 2гб.

Можно ли как-то пропатчить игру, что бы все 32 бита означали адрес и игра могла использовать 4гб
Можно установить флаг LAA (large address aware) в заголовке PE у gta_sa.exe

Почему на некоторых сборках игра крашит при заполнении стриминг памяти
Максимальный лимит, который можно указать для стриминга 4гб (что и делают в сборках), но как было описано выше игра не может столько использовать. В итоге она крашит из-за нехватки памяти

Что отличает этот плагин от других
Данный плагин проверяет сколько памяти игра использует НЕ для стриминга и всю остальную доступную память отдает под стриминг, что бы минимизировать лаги при его заполнении. При этом если это возможно, не дает игре выйти за пределы оперативной памяти, если ее меньше 4гб в компе, что позволяет избежать использования файла подкачки, загрузка данных из которого такая же медленная, как загрузка с диска.

Что будет делать плагин, когда стриминговая память закончится
Плагин заранее, при достижении 90% заполнения запустит таймер на 1 минуту, по истечению которого половина (или четверть, если памяти мало) стриминга будет очищено.

Как работает очистка стриминга
Сначала удаляются объекты, которых давно не было на экране. Если этого не достаточно, то удаляются объекты за спиной игрока, которые не видно. Если и этого не достаточно, то удаляются объекты на экране. В общем визуально очистка не должна быть заметна.

Исходники: https://gitlab.com/prime-hack/samp/plugins/DynamicStreaming
@SR_team как решить проблему с памятью? стоит флаг на 4 гб, стоит твой DynamicStreaming, но не помогает всё равно через время крашит.
DynamicStreaming, просто оставляет total 500 например, и гг игре, для моей гта этого не достаточно.
заметил что при очистке и ТОТАЛ тоже уменьшается

При том сожраная память процесса из диспетцера задач+сожраная из Ф5 не = 4гб
Куда то теряется память? способы решить может подскажешь?
 
Последнее редактирование:

chaprnks

Известный
11
0
как включить экранный текст в первом посте? его нет в списке SA-MP f5 по умолчанию
 

TheClaudePlay

Известный
202
43
Плагин динамически меняет количество стриминг памяти, а так же чистит ее при заполнении не удаляя объекты, которые вы видите на экране.

Посмотреть вложение 112629

По умолчанию в игре ограничено количество памяти, которое используют объекты на экране. В SA:MP это ограничение повышено, но при использовании сборок даже повышенного ограничения бывает недостаточно.

Что происходит, когда игра достигает ограничения
Игра начинает удалять из памяти более старые объекты, но если ограничение маленькое, то могут исчезать объекты с экрана.

Почему обычное увеличение лимита не спасает от лагов
Для загрузки новых объектов, которые надо нарисовать игра удаляет старые, но ровно столько, что бы хватило на загрузку новых. В итоге при заполненной памяти, игра при загрузке новых объектов каждый раз удаляет старые и грузит новые с диска, а это медленно.

Почему нельзя выделить памяти больше, чем размер gta3.img, что бы все объекты были в памяти
Игра 32-битная, это значит, что она использует 32-битные регистры и инструкции процессора. Это значит, что максимальный адрес в памяти к которому игра может обратиться это 32 единицы в двоичной системе счисления, что равно 4 гигабайтам. Однако и 4гб игре не доступны, потому что число может быть не только положительным, но и отрицательным, а это значит, что среди 32 единиц и нолей одна цифра должна означать знак +/-. Следовательно на адреса в памяти остается 31 бит - 31 единица это 2гб.

Можно ли как-то пропатчить игру, что бы все 32 бита означали адрес и игра могла использовать 4гб
Можно установить флаг LAA (large address aware) в заголовке PE у gta_sa.exe

Почему на некоторых сборках игра крашит при заполнении стриминг памяти
Максимальный лимит, который можно указать для стриминга 4гб (что и делают в сборках), но как было описано выше игра не может столько использовать. В итоге она крашит из-за нехватки памяти

Что отличает этот плагин от других
Данный плагин проверяет сколько памяти игра использует НЕ для стриминга и всю остальную доступную память отдает под стриминг, что бы минимизировать лаги при его заполнении. При этом если это возможно, не дает игре выйти за пределы оперативной памяти, если ее меньше 4гб в компе, что позволяет избежать использования файла подкачки, загрузка данных из которого такая же медленная, как загрузка с диска.

Что будет делать плагин, когда стриминговая память закончится
Плагин заранее, при достижении 90% заполнения запустит таймер на 1 минуту, по истечению которого половина (или четверть, если памяти мало) стриминга будет очищено.

Как работает очистка стриминга
Сначала удаляются объекты, которых давно не было на экране. Если этого не достаточно, то удаляются объекты за спиной игрока, которые не видно. Если и этого не достаточно, то удаляются объекты на экране. В общем визуально очистка не должна быть заметна.

Исходники: https://gitlab.com/prime-hack/samp/plugins/DynamicStreaming
Только переписал нужное количество памяти для лаунчера, чтобы не крашило!
Еба ты вовремя пасиб!)