Перейти к содержимому

[2.5.1.85] Не хватает памяти (установлено 4Г на win7 x32 Home Basic)


На эту проблему уже был успешно (кажется успешно) отправлен баг репорт (crashID a342dcb498), но там я не предоставил дополнительной информации.

Поскольку я не готов вовремя отвечать на почтовые сообщения от службы поддержки, а дополнительной информации о проблеме диалог "crash report" не спросил, мне пришлось добавить доп информацию на форум в этот раздел.

1.

На первом скрине сообщение о нехватке памяти (нехватка 64М).

Это случается когда запущен EAC и когда завершается игра.  

На втором скрине информация о конфиге памяти в визуальном виде (доступно 1.2Г, свободно 51М).

т.е. вартандер не может взять !доступную память занятую под дисковый кэш.

2.
Следующая информация не вошла в crash report

На третьем скрине всплывающее окно при запуске игры с предупреждением о нехватке видеопамяти.

Это информация о неправильной оценке вартандер в режиме DX11 доступной памяти видеокарты (0Г) и памяти системы (1.9Г), рядом GPUZ показывает ее реальное количество.

Либо это окно вартандер отображает оставшуюся для системы память после ее резервирования в вартандер (но догадаться об этом нереально).

На х64 такого окна-предупрежедения нет, хотя аппаратура ПК та же самая.

Возможно вартандер пытается выделить под видеопамять линейный буфер в виртуальном адресе размером со всю видеопамять (установить аналогичный по смыслу режим доступа), что нельзя делать в режиме win32 (это ограничение х86, видеопамять карты на win32 доступна через окно например размером 256М и DX11 казалось бы должен эти все детали взять на себя).

3.
У меня есть и соображения по исправлению.

3.1
Я не знаком с деталями интерфейса виртуальной памяти win32: этот интерфейс не posix, а часть функциональности (PAE например) зависит от лицензии (basic, home, pro) или версии (client, server).

Но общие соображения говорят нам, что если все равно требуется вытеснять все приложения (правда что win32 это многозадачная система? конечно, я покажу как только доиграю в вартандер) есть резон резервировать больше памяти сразу, это заставит win32 уменьшить размер памяти выделяемый под дисковый кэш.

* диспетчер задач win32 показывает что вартандер делает огромное количество realloc, например 100 мбайт/сек (мало приложений так делают), т.е. возможно вартандер выделяет и освобождает !системную память по потребности (ну либо это так у нас так отображается commit памяти вартандер в файл подкачки).

Нужно только напомнить что под win32 client менее чем pro много памяти приложения резервировать нельзя (кажется максимум 2Г данных или даже всего 2Г, ключ /3G не работает).

3.2
Другой вариант допускать коммит памяти вартандер в файл подкачки на диск. Поскольку малое количество памяти для win32 это известная проблема, мы ставим отдельный (это важно что диск отдельный) диск (в нашем случае SSD малой емкости) для обслуживания файла подкачки, именно этим обясняется формат файла поддкачки 16М/10Г.

Возможно win32 не может принять наш дар и ничего не свопит на диск, или например свопит в дисковый кэш в памяти, но это мы тоже не можем контролить (неизвестны средства администрирования и задания политики усиленного сброса в своп).

SSD диск не заменит память, но если страницы редкие (в случае нашего краха игра завершилась и грузится ангар), такие данные явно могут лежать в файле подкачки или быть туда помещены после окончания игры.

3.3
т.е. возможно что вартандер просит память у win32 неправильно, например:
- не ставит некий флаг "вытеснять дисковый кэш" при выделении памяти (просит память не из того пула);
- не резервирует сразу достаточный размер памяти для локального malloc;
- не ждет время нужное для выделения памяти при неблокирующем запросе malloc (получает ошибку EAGAIN, но обрабатывает ее как ENOMEM);
- не ставит некий флаг "разрешать сброс виртуальной памяти игры на файл подкачки" (т.е. напрасно фиксирует страницы в физической памяти не позволяя win32 оптимизировать сброс страниц в файл подкачки);

Нет, нам тоже интересно определить что там такое не работает.

И все это из за EAC который не может работать с win64, потому что win64 не может работать с неподписанными (у вас ус отклеился) драйверами без тестового режима, а без драйверов не может работать компьютер.

 

no mem w32 -1.jpg

no mem w32 -2.jpg

no mem w32 -3.jpg

DxDiag.txt.zip a342dcb498.dmp a342dcb498.zip bpreport.log

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

хотя ключ /3G (IncreaseUserVa 3072) работает не всегда (не для всех программ как минимум), я все же попробовал этот метод для WT

запустить cmd с правами администратора и ввести
>bcdedit /set {current} IncreaseUserVa 3072
и перезагрузиться

после этого для WT пропало как первое сообщение "о нехватке видеопамяти", так и авариное завершение WT со вторым сообщением "о нехватке обычной памяти". На 10 тестовых запусках WT никаких проблем не обнаружено (это не значит что этих проблем опять не будет потом, никаких заметных изменений в доступных для WT размерах памяти не произошло, но отметить улучшение надо).

т.е. для игры в WT под win32 вероятно требуется запуск ОС с ключом /3G (требуется настройка 4GT) и возможно что даже basic версии win7 x32 допускают изменение IncreaseUserVa

хотя: "https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc778496(v=ws.10)"
ссылается на Server: "Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2.
The technology called 4-gigabyte tuning (4GT) is a scale up component in the Windows Server 2003 family."

2.

следует проверять настройку доступного для WT предела виртуальной памяти при запуске клиента игры
https://docs.microsoft.com/en-us/windows/win32/memory/4-gigabyte-tuning
и при размере доступного виртуального адреса меньше чем нужно для WT надо выдать окно что "надо применить /3G" (если в этом дело).

4GT microsoft.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • Разработчик WarThunder

Ваш ПК не подходит под минимальные системные требования.
Включайте режим совместимости со старыми видеокартами, понижайте настройки графики до минимальных, это может вам помочь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×
×
  • Создать...