#unity3d #unity-webgl
#unity-game-engine #unity-webgl
Вопрос:
Я получаю проблемы с привязкой или иногда с нехваткой памяти при перезагрузке моей страницы WebGL. У меня есть пустой проект WebGL (только камера подсветка), разработанный в unity3d. Я перезагружаю его и профилирую его память.
Как вы можете видеть, при первой загрузке он загружает 1,2 МБ, а при второй 1281 МБ, затем 1574, затем 2160, а затем происходит сбой. Я поражен, почему это происходит?
Я искал и нашел, что
Комментарии:
1. Какой вариант сборки вы используете? Веб-сборка или asm.js ?
2. Я использую веб-сборку
Ответ №1:
Один из сотрудников Unity сказал, что при открытии браузера Dev Tool
каждая перезагрузка страницы увеличивает объем памяти: «
Следует отметить, что при профилировании использования памяти при перезагрузке страницы в Firefox убедитесь, что окно веб-консоли Firefox (и отладчика) закрыто. Firefox имеет поведение, при котором, если веб-консоль открыта, он поддерживает работу отладчика Firefox JS, который закрепляет все посещенные страницы для кэширования в памяти, никогда не восстанавливая их. Закрытие консоли веб-страницы Firefox позволяет освободить старые страницы из памяти
НО
Мое тестирование показывает, что это верно для Chrome, но не для firefox. Firefox продолжает увеличивать объем памяти при каждой перезагрузке страницы, независимо от того, открыты или закрыты ваши инструменты разработки.
Но моя проблема решена в Chrome (все еще вопрос в Firefox? Я предполагаю, что это поведение браузера по умолчанию), после закрытия инструментов разработки объем памяти в Chrome не увеличивается.
Ответ №2:
проблема
сборка webgl отлично работает во всех браузерах для настольных компьютеров и Firefox mobile, но вылетает через 3 секунды при использовании chrome mobile или safari mobile со страницей «о, оснастка».
проблема заключалась в объеме оперативной памяти, который проект использовал для загрузки ресурсов. я обнаружил, что основной проблемой была загрузка аудиосистемы.
когда игра запустилась, использование оперативной памяти быстро возросло с 300 МБ до 1,3 ГБ.
как я исправил
у меня была фоновая музыка продолжительностью 20 минут, я сократил ее до 5 минут. выберите музыку, затем нажмите переопределить для webgl установите тип загрузки на потоковую передачу, установите качество на 1
благодаря этому обходному пути использование оперативной памяти составляет около 600 МБ, что позволяет запускать сборку на мобильных устройствах.
Редактировать
оказывается, что после обновления ios 15.5 все работает нормально.