Новый Memory Profiler (версия 1.0.0) предлагает улучшения в наборе профилирования, которые отображает более полное представление использования памяти и упрощают и ускоряют оптимизацию производительности или обнаружение проблем с памятью.
Мы, команда разработчиков Memory Profiler, рады объявить, что начиная с сентября 2022 года пакет Memory Profiler перешел из разряда экспериментальных в проверенные и теперь доступен для всех, использующих Unity 2022.2 Tech Stream.
Оглавление
Memory Profiler: Обзор
Оптимизация памяти является ключевой для приложений, работающих на устройствах с ограниченными возможностями, чтобы предотвратить ошибок приложения из-за недостатка памяти. Кроме того, если вы планируете выпуск на нескольких устройствах, ваш размер памяти может потребовать точной настройки, чтобы убедиться, что вы получаете лучшие результаты на каждой платформе.
Memory Profiler — это инструмент, который помогает вам справиться с этими задачами, позволяя вам сделать снимок вашей игры и просмотреть использование памяти в конкретный момент времени.
Полезно — Статья о частном применении Memory Profiler
Путем создания «снимка» вашей игры вы можете увидеть, что занимает большую часть ее памяти или выявить проблемы, которые могут привести к сбоям приложений.
Почему произошло обновление
Memory Profiler был изначально выпущен как экспериментальный пакет несколько лет назад, но данное обновление включает крупную переработку пользовательского интерфейса (UI) и пользовательского опыта (UX), чтобы использование стало быстрее и проще.
Изначальный экспериментальный пакет использовался некоторыми пользователями и помогал во многих случаях выявить проблемы с памятью. Однако он был громоздким, медленным и требовал опыта в его использовании в первой версии.
Когда мы приступили к работе над новой версией пакета, мы имели следующие намерения:
- Упростить наиболее распространенные и важные рабочие процессы, чтобы вы могли быстрее выявлять и исправлять проблемы
- Предоставить более полную и надежную информацию, чтобы облегчить сравнение использования памяти на разных устройствах (также с использованием платформо-специфических профилировщиков)
- Показывать информацию в более доступном виде, чтобы пользователи без глубоких знаний памяти все еще могли эффективно оптимизировать приложения.
Для достижения этого мы тесно сотрудничали с пользователями экспериментального пакета, чтобы понять их потребности и проблемы, и мы несколько раз повторно разрабатывали дизайн, чтобы убедиться, что он обеспечивает наилучший UX.
Благодаря их отзывам наша команда смогла значительно упростить инструмент, уменьшив сложность и облегчив проверку объектов, деталей и зависимостей непосредственно в инструменте.
Что внутри
Memory Profiler состоит из трех основных разделов, которые демонстрируют его новый и улучшенный пользовательский интерфейс, который мы здесь разберем:
- Список снимков
- Основной раздел, который сам по себе разделен на три виды рабочих процессов (Summary, Unity Objects и All of Memory)
- Детали выбора
Список снимков (snapshots)
Список снимков — это раздел, где вы можете захватывать и просматривать снимки (snapshots), которые вы сделали в своей игре, а также общую информацию об использовании памяти и дате снимка. Здесь вы можете сделать снимок либо с помощью кнопки «Capture» на панели инструментов, либо — если снимок недоступен — через кнопку снимка в основном разделе.
Вы также можете видеть, меняется ли использование памяти между снимками и понимать, улучшается ли производительность проекта или нет.
Наконец, вы также можете использовать список снимков, чтобы выбрать, хотите ли вы просматривать отдельные снимки или сравнивать их (более подробную информацию об этом см. Ниже).
Основной раздел
Это основная область Memory Profiler, разделенная на три представления рабочего процесса: Summary, Unity Objects и All of Memory. Каждое из этих представлений доступно из закладок в верхней части основного раздела.
Вкладка Summary является представлением по умолчанию, которое открывается при загрузке или захвате снимка. Она дает информацию о том, сколько памяти вы используете, сколько «задействовано» на устройстве и сколько обещано, но в данный момент не используется. Она также предоставляет информацию о том, как распределена память по категориям, чтобы упростить выбор места начала вашего исследования.
Наконец, представление Summary предоставляет точки входа для более подробного анализа, такие как «Top Unity Objects in Memory» или «Managed memory breakdown».
Просмотр Unity Objects — это то место, где вы, вероятно, проведете большую часть времени. Он перечисляет все основные типы объектов, загруженных в память, такие как текстуры, шейдеры, шрифты и т.д. Обычно здесь можно идентифицировать объекты, которые слишком большие и были загружены по ошибке, или оставлены в памяти некоторой висячей ссылкой.
All of Memory позволяет увидеть всю память, разделенную по категориям — Native, Managed, Graphics или Executables. Вы можете увидеть данные, захваченные Memory Profiler и изучить более конкретные аспекты, чтобы узнать, что составляет память вашего проекта.
Детали выбора
Детали выбора предоставляют дополнительную информацию о выбранных элементах в основном разделе, включая описания разных категорий памяти и потенциальные ссылки или детали выбранных объектов.
Этот раздел предлагает более подробную информацию, чтобы помочь вам понять, что вы видите, и облегчить определение причины нахождения этого в памяти. Кроме того, если у вас открыт проект в редакторе, вы можете «пинговать» объекты и осматривать ресурсы напрямую в окне сцены или проекта.
Сравнение снимков
Каждый из описанных выше просмотров доступен для осмотра отдельных снимков или для их сравнения.
Если вы хотите сравнить моментальный снимок, вы можете выбрать «Compare» в списке снимков, а затем выбрать второй снимок из вашего списка. Нахождение во вкладке сравнения списка снимков автоматически переводит все просмотры в режим сравнения.
В режиме сравнения просмотр сводки предоставляет распределение памяти двух снимков, расположенных рядом, чтобы вы могли увидеть основные различия в использовании памяти между моментальными снимками (которые будут названы «A» и «B»).
В разделах Unity Objects и All of Memory теперь есть новый, специальный интерфейс, который позволяет увидеть, как различные категории памяти изменили свой размер или количество объектов, содержащихся в них.
Если вы выберете категорию в верхней таблице, вы сможете изучить индивидуальные отличия для снимков A и B в таблицах ниже.
Если вы хотите вернуться к осмотру отдельного снимка, вы можете снова выбрать «Single» в списке. Второй снимок останется скрыто загруженным, чтобы вы могли быстро переключаться между ними при необходимости.
Понимание памяти в Unity и оптимизация ее использования
В ближайшие месяцы мы надеемся предоставить вам дополнительные ресурсы и информацию о том, как вы можете эффективно оптимизировать использование памяти. Следите за новыми публикациями на сайте, где мы рассмотрим, как выявлять распространенные проблемы в памяти, а также подробно расскажем о том, как работает память в Unity.
Следующие шаги
Переработанный Memory Profiler интегрирует в себя отзывы многих пользователей экспериментальной версии этого пакета. Несмотря на то, что эта версия принесла значительные улучшения как в надежности, так и в удобстве использования этого инструмента, наша работа далеко не закончена.
Мы также в настоящее время работаем над лучшим пониманием рабочих процессов, связанных с уменьшением фрагментации, чтобы мы могли помочь вам в этом аспекте в будущем. В то же время мы собираем отзывы о проблемах с удобством использования и пользовательским интерфейсом, которые все еще открыты и требуют улучшения.
Оригинал на английском — https://blog.unity.com/engine-platform/everything-you-need-to-know-about-memory-profiler