Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 13

Потребление памяти при смене сцены

15.12.2017, 17:37. Показов 2961. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех. Я создал пустой проект, сделал в нем 2 сцены, в сцены накидал спрайтов просто для теста, а также повесил скрипт на камеры (в 2 сценах) для перехода между сценами через определенный промежуток времени.
Скрипт:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
        public string n = "";
        float time = 1f;
        bool a = false;
 
        void Start () {
 
                a=false;
                time = 1f;
                Application.targetFrameRate = 30;
        }
 
        void Update()
        {
 
                if (Time.frameCount % 30 == 0) {
                        System.GC.Collect ();
 
                        Resources.UnloadUnusedAssets ();
                }
 
                time-=Time.deltaTime;
                if (!a && time < 0f) 
                {
                        a = true;
                        UnityEngine.SceneManagement.SceneManager.LoadSceneAsync (n);
                }
        }

Скрипт работает, однако проблема в том, что в скомпилированном виде игра постоянно тратит все больше и больше оперативной памяти. Потребление растет медленно (обычно 10-20 Кб при смене сцены, но бывает и больше), но для крупного проекта это может быть неприятным. Пробовал убирать System.GC.Collect и Resources.UnloadUnusedAssets из скрипта, но результат остался прежним. Пробовал смотреть в Profiler, но кроме того, что ненужные спрайты выгружаются из ОЗУ, ничего не увидел. Версия Unity - 2017.2.0f3. В чем может быть проблема?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.12.2017, 17:37
Ответы с готовыми решениями:

Сбивается текстура при смене сцены
Суть в том, что у меня есть спрайт, который я использую как фон. Прописал скрипт, чтобы при переходе со сцены на сцену он не разрушался(см....

При скачивание файла увеличивается потребление памяти
Здравствуйте. Установлена связка Apache(backend) + nginx (frontend). При загрузки файлов разных размеров (есть как 1Mb так и 500+Mb)...

Потребление оперативной памяти при включении компьютера
При включении компьютера сразу же потребляется 1+ ГБ оперативной памяти при том что каких-либо &quot;левых&quot; программ не запускаю....

6
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
15.12.2017, 19:53
Такой мизерный рост потребления это не повод для переживания, не факт что это утечка памяти и потребление будет постоянно расти. Одна неправильно сжатая текстура может убить все оптимизации по потреблению памяти. Используйте правило - потратившись на байтах на битах не экономлят)
1
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 13
15.12.2017, 20:46  [ТС]
Спасибо за совет. Однако, мне все же интересно с чем это может быть связано и можно ли как-то это исправить. Что касается возможности прекращения роста потребления, то я оставлял скомпилированный проект включенным на 20 минут и рост не прекратился (естественно, я настроил проект, чтобы он работал в фоновом режиме).
0
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
15.12.2017, 22:19
а чем смотрите потребление ОЗУ?
0
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 13
15.12.2017, 23:27  [ТС]
Диспетчером задач Windows
0
 Аватар для Prog_maker
459 / 403 / 153
Регистрация: 23.01.2011
Сообщений: 1,054
17.12.2017, 14:04
Памать выделенная для кучи никогда не возвращяется в операционную систему, пока приложение работает. Если куча растет, значит где то не эффективно ее используете. Вы покажите все скрипты. И еще GC. Collect не стоит пихать в Update. Его как вариант можно запускать между загрузкой сцен. А вообще он работает автоматически.
0
0 / 0 / 0
Регистрация: 19.06.2015
Сообщений: 13
17.12.2017, 14:10  [ТС]
Скрипт у меня только один, он висит на камерах в двух сценах. GC.Collect и Resources.UnloadUnusedAssets пробовал убирать, лучше не стало.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.12.2017, 14:10
Помогаю со студенческими работами здесь

Большое потребление памяти при вызове метода
Наблюдаю очень странное поведение Visual Studio 2008. В моём проекте на C# есть один метод, который содержит большое число кода (циклы,...

При каждом чтении из файла потребление памяти увеличивается на 8 Кб
Цикл с чтением из файла. В диспетчере задач после выполнения str := sr.ReadToEnd(); память увеличивается на 8 Кб. После многих раз...

Большое потребление оперативной памяти при долгой работе
Добрый день гуру программирования. Проблема у меня такая. Приложение потребляет слишком много оперативной памяти при долгой работе....

При замене процессора винда не грузится, при смене памяти комп не включается
почитал схожие темы на форуме, ответа не нашел, поэтому моя ситуация: решил сменить процессор. Был Core 2 Duo E7500, стал Core 2 Quad...

не запускается винда при смене модулей памяти
подскажите плз: материнка Гигабайт GA-55HM-S2 стояло 2 модуля оперативки по 2 гига, решил увеличить память, купив 2 модуля по 4 Гб, не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru