Все, что вам нужно знать о Memory Profiler 1.0.0

AGNESE CAGLIO / UNITY TECHNOLOGIESSenior Product Designer
Jan 30, 2023|10 Мин
Все, что вам нужно знать о Memory Profiler 1.0.0
Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.

Новый профилировщик памяти - версия 1.0.0 - представляет собой усовершенствования в наборе профилирования, которые дают более полное представление об использовании памяти и позволяют быстрее и проще оптимизировать производительность или обнаружить проблемы с памятью.

Мы, команда разработчиков профилировщика, очень рады сообщить, что с сентября 2022 года пакет Memory Profiler перешел из категории Experimental в Verified и теперь доступен для всех желающих с помощью Unity 2022.2 Tech Stream.

Профилировщик памяти: Обзор

Оптимизация памяти очень важна для приложений, которые работают на устройствах с ограниченными возможностями, чтобы предотвратить нехватку памяти. Более того, если вы планируете выпускать продукцию на нескольких устройствах, вам может потребоваться тонкая настройка объема памяти, чтобы обеспечить максимальную отдачу от каждой платформы.

Memory Profiler - это инструмент, который поможет вам справиться с этими проблемами, позволяя сделать снимок вашей игры и просмотреть использование памяти в определенный момент времени.

Сделав "снимок" своей игры, вы сможете увидеть, что занимает большую часть ее памяти, или выявить проблемы, которые могут привести к сбоям в работе приложений.

Примечание: Хотя все функции Memory Profiler и отслеживание памяти доступны только в версии 2022.2 и выше, вы можете воспользоваться преимуществами нового пользовательского интерфейса (UI) для проверки старых снимков, открыв Memory Profiler в пустом проекте 2022+ и импортировав старые снимки.

Как она появилась

Memory Profiler был выпущен в качестве экспериментального пакета пару лет назад, но в этом выпуске был значительно переработан пользовательский интерфейс и пользовательский опыт (UX), чтобы сделать его быстрее и проще в использовании.

Оригинальный экспериментальный пакет использовался некоторыми ранними пользователями и во многих случаях помог выявить проблемы с памятью. Однако в первом варианте он был громоздким, медленным и требовал экспертных знаний.

Когда мы приступили к работе над новой версией пакета, мы преследовали следующие цели:

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

Для этого мы тесно сотрудничали с первыми пользователями экспериментального пакета, чтобы понять их потребности и болевые точки, и несколько раз итерировали дизайн, чтобы убедиться, что он обеспечивает наилучший UX.

Благодаря их вкладу наша команда смогла значительно оптимизировать и упростить инструмент, сократив жаргонные выражения и упростив проверку объектов, деталей и зависимостей непосредственно в инструменте.

Что внутри

Memory Profiler состоит из трех основных разделов, демонстрирующих его новый и улучшенный пользовательский интерфейс, который мы рассмотрим далее:

  • Список снимков
  • Основной раздел, который сам разделен на три представления рабочего процесса (Summary, Unity Objects и All of Memory)
  • Подробности выбора
Список снимков

Список снимков - это область, где вы можете делать и просматривать снимки, сделанные в игре, а также информацию высокого уровня об использовании памяти и дате съемки. Здесь вы можете сделать снимок либо с помощью кнопки "Захват" на панели инструментов, либо - если снимок недоступен - с помощью кнопки "Снимок" в разделе "Главная".

Вы также можете увидеть, изменяется ли использование памяти в разных моментальных снимках, и получить представление о том, улучшается ли производительность проекта или нет.

Наконец, вы можете использовать список снимков, чтобы выбрать, хотите ли вы просматривать отдельные снимки или сравненные снимки (подробнее об этом ниже).

Список снимков
Основной раздел

Это основная область Memory Profiler, разделенная на три вида рабочего процесса: Резюме, Unity Objects и All of Memory. Каждый из этих видов доступен с помощью вкладок в верхней части раздела "Главная".

Представление "Сводка" - это представление по умолчанию, которое открывается при загрузке или захвате моментального снимка. Он предоставляет информацию о том, какой объем памяти вы используете, какой объем "резидентный" на устройстве и какой объем зафиксирован, но в данный момент не находится на устройстве. В нем также содержится информация о том, как память распределяется по категориям, чтобы упростить выбор того, с чего начать исследование.

Наконец, представление Summary предоставляет точки входа для более детального анализа, например, "Top Unity Objects in Memory" или "Managed memory breakdown".

Основной раздел - Сводный вид

В представлении Unity Objects вы, скорее всего, проведете больше всего времени. В нем перечислены все основные типы объектов, загруженных в память, такие как текстуры, шейдеры, шрифты и так далее. Обычно здесь можно определить объекты, которые слишком велики, не нужны, потому что были загружены по ошибке или находились в памяти по какой-то висячей ссылке.

Основной раздел - представление Unity Objects

Вид All of Memory позволяет увидеть всю память, разделенную по категориям - Native, Managed, Graphics или Executables. Вы можете просмотреть данные, полученные с помощью Memory Profiler, и исследовать более конкретные аспекты, чтобы узнать, что составляет память вашего проекта.

Основной раздел - Просмотр всей памяти
Детали выбора

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

В этом разделе содержится дополнительная информация, которая поможет вам понять, на что вы смотрите, и облегчит определение причин, по которым он находится в памяти. Более того, если проект открыт в редакторе, у вас будет возможность "пинговать" объекты и осматривать активы прямо в окне сцены или проекта.

 Просмотр сведений о выборе
Сравнение моментальных снимков

Каждое из описанных выше представлений доступно для просмотра отдельных снимков или для их сравнения.

Если вы хотите сравнить моментальный снимок, выберите "Сравнить" в списке моментальных снимков, а затем выберите второй снимок из списка. Находясь на вкладке сравнения в списке снимков, вы автоматически переведете все виды в режим сравнения.

В режиме сравнения в представлении "Сводка" можно увидеть разбивку памяти двух снимков рядом друг с другом, чтобы увидеть основные различия в использовании памяти между снимками (которые будут называться "A" и "B").

Вид режима сравнения

В представлениях Unity Objects и All of Memory появился новый, специальный пользовательский интерфейс, позволяющий увидеть, как изменился размер различных категорий памяти или количество содержащихся в них объектов.

Если вы выберете категорию в верхней таблице, вы сможете просмотреть индивидуальные различия для снимков A и B в таблицах ниже.

Представления Unity Objects и All of Memory в режиме сравнения

Если вы хотите вернуться к просмотру одного снимка, в списке снимков снова выберите "Single". Второй снимок будет находиться в скрытой загрузке, чтобы вы могли быстро переключаться между ними при необходимости.

Понимание памяти в Unity и ее оптимизация

В ближайшие месяцы мы надеемся предоставить вам дополнительные ресурсы и информацию о том, как эффективно оптимизировать память. Ждите новых статей в блоге о том, как выявить распространенные проблемы с памятью, а также о том, как работает память в Unity.

Для получения более общих сведений о том, как оптимизировать производительность приложений, мы рекомендуем следующее:

Следующие шаги

Этот редизайн Memory Profiler учитывает мнение многих первых пользователей экспериментальной версии этого пакета. Несмотря на то, что эта версия значительно улучшила надежность и удобство использования этого инструмента, наша работа еще далека от завершения.

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

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

Мы постоянно следим за обоими каналами и надеемся на совместную работу по дальнейшему улучшению производительности и инструментария Unity.

Установите или узнайте больше о пакете Memory Profiler 1.0.0.