Memory Profiler - це новий пакет для Unity 2018.3 або новішої версії, який дозволяє аналізувати використання пам’яті в проекті для виявлення витоків пам’яті та фрагментації. Витік пам'яті може статися, коли пам'ять виділяється, але ніколи не виділяється для повторного використання після того, як пам'ять більше не потрібна. У цьому посібнику ви дізнаєтесь, як за допомогою Профілера пам’яті перевіряти наявність витоків пам’яті.
Профілятор пам'яті
За допомогою Profiler пам'яті ви можете аналізувати використання пам'яті проекту для виявлення витоків і фрагментації. Витік пам'яті може статися, коли пам'ять виділяється, але не звільняється після того, як вона більше не потрібна. Продуктивність програми погіршується, коли пам’ять закінчується, що в кінцевому підсумку спричиняє збій програми (і, можливо, навіть хост -пристрою). Коли пам'ять виділяється у багатьох невеликих блоках, а не в менших суміжних блоках, це називається фрагментацією пам'яті. В результаті невеликі, нерозподілені області пам’яті між виділеними блоками більше не доступні для використання.
Встановлення Профілера пам’яті
Профіліровщик пам’яті працює з редактором Unity, а також зі збірками для розробки і доступний у диспетчері пакетів як пакет попереднього перегляду.
Як встановити Профілятор пам’яті:
1. У редакторі Unity виберіть Диспетчер пакетів зі спадного списку Вікно.
2. Натисніть Додатково та виберіть Показати пакети попереднього перегляду.
3. Знайдіть Профіліровщик пам’яті та натисніть Встановити у нижньому правому куті вікна Диспетчер пакетів.
4. Після встановлення ви можете отримати доступ до Memory Profiler, вибравши «Analysis»> «Memory Profiler» зі спадного списку «Window».
Запишіть знімок пам'яті
Профайлер сховища може або націлитись на поточну розробку на локальному комп’ютері, або призначити йому певну IP -адресу для мережевого комп’ютера.
1. Перш ніж ви зможете зробити звалище, вам потрібно вибрати пункт призначення. За замовчуванням ціль - редактор Unity.
2. Щоб вибрати нову ціль, клацніть спадне меню у верхньому лівому куті Профілятора пам’яті.
Натисніть кнопку "Захопити", щоб захопити поточний профіль зберігання вибраної цілі. Зауважте, що сам зйомка займає деяку пам'ять. У деяких випадках це може призвести до зависання або аварійного завершення роботи цілі при вичерпанні пам’яті.
Імпортуйте знімок захопленої пам’яті
1. Натисніть кнопку Імпортувати у верхній частині вікна Профілювальника пам’яті.
2. Використовуйте спадне меню «Формат файлу» у нижньому правому куті діалогового вікна «Імпорт файлу знімків», щоб вибрати формат знімка сховища, який потрібно імпортувати. Опції включають файли .snap, отримані за допомогою Memory Profiler, і файли .memsnap *, створені за допомогою Bitbucket Memory Profiler.
3. Перейдіть до знімка та виберіть його. Натисніть Відкрити.
4. Перший раз, коли ви робите знімок пам’яті, буде створена папка з назвою MemoryCaptures (на тому ж рівні, що і папка «Активи», а не в цій папці). Ви також можете зберегти знімки пам'яті в цій папці, щоб зробити їх доступними.
5. Переглянути дамп пам'яті
Після зйомки або імпорту (включаючи переміщення знімка в папку MemoryCaptures), знімок з'явиться у лівому стовпці вікна Профілювальника пам'яті. Натисніть Відкрити, щоб переглянути профіль зберігання.
Стандартний та найбільш інтуїтивно зрозумілий вид - це деревоподібна структура (Малюнок 06). У цьому поданні пропорційно показано обсяг пам’яті, який використовується кожним типом елемента. У нашому прикладі 126 шейдерів займають загалом 80 МБ оперативної пам’яті.
Щоб переглянути категорію більш детально, клацніть її, щоб переглянути всі елементи та їх відповідні місця в пам’яті. Більш детальна інформація відображається у таблиці під структурою дерева. Клацніть заголовки, щоб відсортувати таблицю за значенням або групою.
Табличний вигляд, який знаходиться як під деревоподібною структурою, так і під структурою пам’яті, містить більш детальну інформацію про використання пам’яті окремими елементами.
Більш прямий вид, Карта пам’яті, показує макет пам’яті різними кольорами із зображенням різних типів пам’яті. Це може бути корисним у пошуку фрагментації пам’яті.
Робота з профілем пам'яті
Знайдіть витік пам’яті
Як знайти витік пам'яті:
1. Запустіть програвач, встановіть його як ціль профілю збереження та зробіть знімок порожньої сцени.
2. Завантажте сцену, яку потрібно перевірити. Відтворіть частину сцени, щоб завантажити необхідні активи.
3. Розвантажте сцену, набравши Resources.UnloadUnusedAssets () або двічі завантаживши / створивши порожню сцену
4. Зробіть ще один знімок і вийдіть з режиму відтворення.
5. Завантажте перший та другий знімки екрану у варштат та клацніть на Diff. Unity обчислює різницю між двома скріншотами. Це може зайняти кілька секунд, залежно від розміру знімка.
6. У поданні таблиці натисніть на заголовок стовпця Різниця та виберіть Групувати.
7. Записи групуються: однакові, в обох моментальних знімках, від першого видаленого знімка та нового. Нові записи - це можливі витоки пам’яті.
Memory Profiler - це чудовий спосіб відстежувати використання пам'яті вашого проекту.
Ви не тільки можете побачити, що використовується найбільше місця для зберігання, але й побачити, як ваш проект використовує або зловживає місцем для зберігання. Витік пам’яті та фрагментація - дві з найпоширеніших проблем, які впливають на проект
і Профілювальник пам'яті усуває його.
Спочатку опубліковано 2020 03:16:16.