Я периодически сталкиваюсь с проблемой, нехватки оперативной памяти, проблема находит меня только в 3DMax. 3DMax вместе с Corona Renderer просто неимоверно пожирают мою оперативную память! В общем у меня не большой объем RAM всего 16 ГБ, остальные программы (например Photoshop, ACad) не имеют никаких проблем с нехваткой оперативной памяти.
При создании тяжелых сцен, 3DMax требует больших объемов RAM и это нормально, но хуже всего тот факт, что очень часто 3DMax оставляет в оперативной памяти уже не нужные для сцены объекты, которые прежде были загружены в мою сцену, но впоследствии сразу же уделенные из сцены! Очень часто, именно по этой причине оперативной памяти и не хватает.
Постараюсь описать простой пример из работы более детально:
Я загрузил тяжелый объект в сцену, объектом может быть старая сцена из моего архива или просто какая нибудь тяжелая модель. Я посмотрел этот объект, взял что нужно оттуда или просто удалил его из сцены т.к. он мне не подошел/не понравился и тд, но после удаления ненужного объекта, 3DMax упорно продолжает держать этот объект в оперативной памяти!
Это наглядно видно в Диспетчере устройств, - в закладке "Быстродействие" я вижу насколько была забита моя оперативная память ДО и ПОСЛЕ загрузки объекта в сцену.
Получается так, что до загрузки объекта, 3DMax использовал значительно меньшее количество оперативной памяти (например 8 Гб использовалось), но после загрузки и даже после последующего удаления этого тяжелого объекта, моя память не высвобождается! (например уже используется 12 Гб !) Это выглядит очень не рационально и даже временами мешает работать. Я уже удалил причину по которой использование моей RAM возросло, но память по прежнему занята.
Иногда я жду когда же RAM освободится от предыдущей загрузки, но этого не происходит. В этом случае мне приходится закрывать и перезагружать сцену. После перезагрузки сцены оперативная память вновь освобождается, и лишь тогда можно работать дальше.
Мой вопрос: Существует ли способ очистить RAM от висящих там объектов, которые не используются в данный момент никакими активными приложениями? Может быть есть такой способ в самом 3DMax? Может он есть в системе Windows?
16 гигов оперативки для рендера - смешной объем, докупите хотя бы до 32, тем более, что оперативка нынче копеечная, например на вторичке 64 гига оперативки можно купить за 15т.р (средняя цена на авито за ддр4)
очистить память можно только до того момента пока начнется рендер, но там он сам выгрузит все ненужное и без всяких скриптов
16 гигов оперативки для рендера - смешной объем, докупите хотя бы до 32, тем более, что оперативка нынче копеечная, например на вторичке 64 гига оперативки можно купить за 15т.р (средняя цена на авито за ддр4)
К сожалению, не могу докупить. У меня DDR3 , но топовая на 2013 -
Gertruda Potolkova вам стоит разобраться в железе хотя бы чуть чуть - ddr3 сейчас вообще отдают за бесценок и ее можно спокойно ставить разных производителей и разными частотами
"более низкую по качеству" - несколько смешно звучит
Gertruda Potolkova вам стоит разобраться в железе хотя бы чуть чуть - ddr3 сейчас вообще отдают за бесценок и ее можно спокойно ставить разных производителей и разными частотами
Дорогой вы меня не слышите... Я говорю НЕТ такой памяти! НЕТ нигде. Если вы можете найти мне такую память
"более низкую по качеству" - несколько смешно звучит" - согласен.
но мой Комп 2013 года, так не думает
Цитата Gertruda Potolkova:
Более низкую по качеству и частотам/других производителей память ставить не хочу... да и нет смысла.
Но мы смещаемся от темы. Мне интересен ответ на вопрос: Как юзер может очистить Ram от объектов которые не используются в данный момент никаким активным приложением?
Моя память уже далеко не топовая на 2021, более медленную по таймингам или частотам не хочу иметь. Поставив более медленную я должен буду замедлить свою существующую. Она итак проигрывает нынешним поколениям DDR4, далее замедлятся за счет объемов не намерен. Кроме этого неизвестно вообще как будут работать объемы от других производителей с моей существующей памятью. Я бы предпочел ставить того же производителя, с такими же таймингами и частотами, но такую пока я не могу найти
В общем это уже другая тема... Моя тема назвается - "Способы очистки оперативной памяти от не используемых в данный момент объектов в сцене в 3DMax"
но после удаления ненужного объекта, 3DMax упорно продолжает держать этот объект в оперативной памяти!... Я уже удалил причину по которой использование моей RAM возросло, но память по прежнему занята... Иногда я жду когда же RAM освободится от предыдущей загрузки, но этого не происходит.
Ждун )))). Как он её освободит, если есть история операций. Он объект при возвращение откуда в макс развернет как не из памяти )). Scene undo - 1 поставьте и сделайте одну итерацию объекта.
очень часто 3DMax оставляет в оперативной памяти уже не нужные для сцены объекты, которые прежде были загружены в мою сцену, но впоследствии сразу же уделенные оттуда!
убрать ненужные алокаций в память можно только через очистки undo/redo и gc (garbage collector). для этого хватает сохранить файл и перезапустить макс или через макскрипт clearUndoBuffer(); gc(); но изменения не будут многовенные, есть и фактор дефрагментаций, кроме этого в макс может засорится другими вещями как например кэш текстур, по этому можно дополнить к скрипту freeSceneBitmaps(); или вовсе если исползуется proxybitmaps убрать галку в настройках так как по большому клоны текстур исползуется только максом а не рендер движком...
когда не хватает память, первое что должен сделать ползыватель перезапустить комп и не включая не нужный софтины, проверить на доступность память к рендеру и только потом оптимизировать сцену, но это уже глубже.
п.с. писал бухой в вторник
Спасибо товарищи попробую изучить тему и попробовать
Цитата Igor5566:
10лет компу уже, какие тут вопросы могут быть?обновись уже наконец и повод есть избавится от глюков!
дидир3 16гб это вообще не о чем если серьёзно работаешь, а не баловства ради))))
Нет не 10 лет! Я ошибся, мой комп я собирал в 2013 , a не в 2012 как я сказал ранее но даже если бы он был из 2012, то ему было бы 9 лет) Моему компу сегодня 7 лет, 8 будет в этом году но позже)
от этого он быстрее не станет работать!это старье от которого давно надо было избавится!нормальные 3дшники обновляются каждые 2-3года на новую платформу, ну если конечно у тя не рендер ферма)))))
Цитата Igor5566:
10лет компу уже, какие тут вопросы могут быть?обновись уже наконец и повод есть избавится от глюков!
дидир3 16гб это вообще не о чем если серьёзно работаешь, а не баловства ради))))
Нет не 10 лет! Я ошибся, мой комп я собирал в 2013, но даже если бы он был из 2012, то ему было бы 9 лет)
но после удаления ненужного объекта, 3DMax упорно продолжает держать этот объект в оперативной памяти!... Я уже удалил причину по которой использование моей RAM возросло, но память по прежнему занята... Иногда я жду когда же RAM освободится от предыдущей загрузки, но этого не происходит.
Ждун )))). Как он её удалит, если есть история операций. Он объект при возвращение отдука в макс развернет как не из памяти )). Scene undo - 1 поставьте и сделайте одну итерацию объекта.
А вы думаете я "жду" сложа руки уставившись на экран, вытирая слезы рукавом? Лол! Да я десяток итераций делаю и работаю дальше, жду в процессе работы. Все равно остается в памяти мусор. undo - 1 правда не помню делал ли, но сомневаюсь что это поможет.
память хорошо жрет история (откуда ни возьмись). Если мало памяти. Можно в ущерб работе ее "заткнуть" до 5-20 шагов. Остальное должно по идее выкидываться
undo - 1 правда не помню делал ли, но сомневаюсь что это поможет.
Проверьте. Я то проверил прежде, чем опубликовал пост. Но часть мусора от него останется, имхо, это макс не убирает зафрахтованное место в памяти... по крайне мере сразу.
от этого он быстрее не станет работать!это старье от которого давно надо было избавится!нормальные 3дшники обновляются каждые 2-3года на новую платформу, ну если конечно у тя не рендер ферма)))))
Самый ненужный совет...
Если бы я мог сегодня купить новый компьютер, тогда зачем бы я задавал такой вопрос? Видимо не в курсе как железо подскочило в цене? С одними видеокартами просто беда уже который год... Что, не подняли в рублях, то майнеры сожрали...
К сожалению сегодня у меня нет возможностей собрать себе новый PC, да и в целом, мой PC не настолько ужасен. У меня хороший 12-потоковый процессор, который справляется с рендерингом не так уж и плохо, просто только для Corona Renderer не хватает RAM
Цитата DizArtWork:
память хорошо жрет история (откуда ни возьмись). Если мало памяти. Можно в ущерб работе ее "заткнуть" до 5-20 шагов. Остальное должно по идее выкидываться
Спасибо за деталь! У меня высокий уровень Undo Levels, возможно нужно уменьшить!
Цитата Slazzo:
открою америку через фортачку, если у вас меш который допустим весит 10гб и вы на него накладываете модификатор эдит поли или что-то ещё в процесе которого вы его убиваете, пока вы не сколапсите стэк и и не очитсите undo он будет висеть в памяти
Спасибо за совет! А как я могу очистить Undo? что то не припоминаю
Цитата Rebate:
Проверьте. Я то проверил прежде, чем опубликовал пост. Но часть мусора от него останется, имхо, это макс не уберет зафрахтованное место в памяти... по крайне мере сразу.
Спасибо, уже есть что-то полезное!
Мне кажется что суть проблемы заключена в Undo! 3DМакс хранит все эти объекты, для того чтобы юзер мог вернутся к ним!
"DDR3-1600 имеет задержку в 12.5 нс, а задержка у DDR4-2666 составляет 12.75 нс, что примерно одно и то же. Но DDR4 в этом случае обеспечивает пропускную способность в 21.3ГБ/С, а DDR3 только 12.8ГБ/С."
В каком месте макса вам сильно нужно больше пропускной способности, кроме момента прекеша при подготовке рендера?))))))
У меня хороший 12-потоковый процессор, который справляется с рендерингом не так уж и плохо, просто только для Corona Renderer не хватает RA
До декабря этого года работал на 3930х (я так подозреваю он у Вас) и умилялся как это 10 летний комп работает нормально. Но решил обновиться на 5950х. Сказать что я АХ и придумайте окончание....ничего не сказать....Много мелких факторов друг от друга зависят. Что проц, что оперативка, а еще и ссд подтянулись над сложными сценами. Найдите силы, найдите возможности. Вы выиграете больше в итоге чем сидеть по пол часа (в замен 5 минут) рендерить. На видеокарты вот вообще не смотрите. Да. Купил. ДА стоит. Но я ей не пользуюсь (по работе)
И чё, сильно проигрывает? В каких играх? )) "DDR3-1600 имеет задержку в 12.5 нс, а задержка у DDR4-2666 составляет 12.75 нс, что примерно одно и то же. Но DDR4 в этом случае обеспечивает пропускную способность в 21.3ГБ/С, а DDR3 только 12.8ГБ/С." В каком месте макса вам сильно нужно больше пропускной способности? В момент прекеша при подготовке рендера?))))))
я не буду умничать, поскольку не спец в железе) Судя по вашим цифрам не особо то и проигрывает. Просто DDR4 быстрее чем DDR3 согласно прогрессу технологий, я опирался на эту идею, без вникания цифр.
В играх моя память норм, хотя я играю то только в 2-3 игры (Arma3, Elite Dangerous, Homeworld2)
Цитата DizArtWork:
До декабря этого года работал на 3930х (я так подозреваю он у Вас)
Но решил обновиться на 5950х. Сказать что я АХ и придумайте окончание....ничего не сказать....Много мелких факторов друг от друга зависят. Что проц, что оперативка, а еще и ссд подтянулись над сложными сценами. Найдите силы, найдите возможности. Вы выиграете больше в итоге чем сидеть по пол часа (в замен 5 минут) рендерить
Спасибо Вам, за такой совет! Я внял! Я обязательно возьму себе новый PС, уже собирал его в мыслях и не раз. Подсчитывал стоимость. Просто сегодня видимо пространство не благоволит мне)
Цитата DizArtWork:
На видеокарты вот вообще не смотрите. Да. Купил. ДА стоит. Но я ей не пользуюсь (по работе)
Не видюха мне нужна все же, для работы с вьюпортами и миллионами полигонов)
Но это уже третья история. Сейчас, мне только нужно научиться очищать RAM!
Левая стрелка. Создал 10 копий офисного набора столов стульев. (ну не важно в принципе) . Средняя стрелка убрал их из сцены (удалил) Ну и правая стрелка сделал 2 действия перезаписать историю макса