This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Defold містить інструменти профілювання, інтегровані з рушієм і процесом збирання. Вони допомагають виявляти проблеми з продуктивністю, пам’яттю та використанням ресурсів. Дані профілювання під час виконання можна переглядати за допомогою кількох засобів:
Налаштування Profiler у маніфесті застосунку (App Manifest) визначає, чи включається код профайлера до збірки під час компонування. Типове значення — Debug Only, значення None виключає цей код, а Always включає його як до налагоджувальних збірок, так і до збірок випуску. Налаштування profiler у game.project керують поведінкою під час виконання, але не повертають виключений код профайлера до збірки. Зокрема, Track CPU керує збором вибірок використання CPU; воно задається окремо від вибору в App Manifest.
Збірки з підтримкою профайлера містять візуальний профайлер середовища виконання, який відображає поточну інформацію поверх запущеного застосунку:
function on_reload(self)
-- Toggle the visual profiler on hot reload.
profiler.enable_ui(true)
end

Візуальний профайлер надає низку функцій, за допомогою яких можна змінювати спосіб відображення його даних:
profiler.set_ui_mode()
profiler.set_ui_view_mode()
profiler.view_recorded_frame()
Докладніше про функції профайлера див. у довіднику API профайлера.
Під час роботи настільної або мобільної збірки з підтримкою профайлера інтерактивні профайлери кадрів і ресурсів доступні через браузер.
Профайлер кадрів дає змогу збирати вибірки даних під час роботи гри та докладно аналізувати окремі кадри. Щоб відкрити профайлер:
Профайлер кадрів поділено на кілька розділів, кожен з яких показує запущену гру з іншого боку. Натисніть кнопку Pause у верхньому правому куті, щоб тимчасово зупинити оновлення подань профайлера.

Якщо ви одночасно використовуєте кілька цільових пристроїв, між ними можна перемикатися вручну: змініть поле Connection Address угорі сторінки на URL профайлера Remotery, показаний у консолі під час запуску гри на відповідному пристрої:
INFO:ENGINE: Defold Engine 1.3.4 (80b1b73)
INFO:DLIB: Initialized Remotery (ws://127.0.0.1:17815/rmt)
INFO:ENGINE: Loading data from: build/default



Значення LuaMem — це обсяг пам’яті в кілобайтах, який використовує віртуальна машина Lua за даними збирача сміття Lua. Memory — це обсяг пам’яті в кілобайтах, який використовує рушій.
Налаштування Max Sample Count обмежує кількість вибірок профайлера, записаних для кожного потоку за один кадр. Якщо профайлер повідомляє про перевищення цього обмеження, спершу перевірте код профілювання нативних розширень на наявність непарного початку або кінця області профілювання. Підвищуйте обмеження лише тоді, коли кадр справді містить більше областей профілювання, ніж дозволяє встановлене значення.
Профайлер ресурсів дає змогу інспектувати гру під час її роботи й докладно аналізувати використання ресурсів. Щоб відкрити профайлер:
Профайлер ресурсів поділено на 2 розділи: один показує ієрархію колекцій (collections), ігрових об’єктів (game objects) і компонентів, екземпляри яких наразі створено у вашій грі, а інший — усі завантажені ресурси.

Для часової шкали в браузері HTML5 використовує Web Performance API замість Remotery. Щоб записати області профілювання Defold:
profiler.performance_timeline_enabled) у game.project.Ця часова шкала браузера працює окремо як від вбудованого у гру візуального профайлера, так і від інтерактивного вебпрофайлера Remotery.
Під час пакування гри можна створити звіт про збирання. Він дуже корисний для розуміння розміру всіх ресурсів, що входять до пакета гри. Просто встановіть прапорець Generate build report під час пакування гри.

Засіб збирання створить файл report.html поруч із пакетом гри. Відкрийте цей файл у веббраузері, щоб переглянути звіт:

Розділ Overview наочно показує загальний розподіл розміру проєкту за типами ресурсів.
Розділ Resources показує докладний список ресурсів, який можна сортувати за розміром, ступенем стиснення, шифруванням, типом і назвою каталогу. Використовуйте поле «search», щоб фільтрувати відображувані записи ресурсів.
Розділ Structure показує розміри відповідно до того, як ресурси впорядковано у файловій структурі проєкту. Записи позначено кольорами від зеленого (малий розмір) до синього (великий розмір) залежно від відносного розміру файлу та вмісту каталогу.
Окрім вбудованих інструментів, існує широкий вибір якісних безкоштовних інструментів трасування й профілювання. Ось деякі з них:
Зауважте, що профайлери, написані лише мовою Lua, створюють значні накладні витрати з кожним встановленим обробником перехоплення (hook). Тому до отриманих за допомогою такого інструмента профілів часу слід ставитися з певною обережністю. Водночас профілі кількості викликів достатньо точні.

Цей інструмент дає змогу інспектувати запущений застосунок Defold і бачити, як він використовує OpenGL. За його допомогою можна трасувати виклики функцій OpenGL, встановлювати точки зупинки на функціях OpenGL, досліджувати ресурси застосунку (текстури, програми, шейдери тощо), переглядати вміст буферів і перевіряти інші аспекти стану OpenGL.

Набір інструментів профілювання, який збирає в реальному часі дані про використання CPU, пам’яті та мережеву активність вашої гри. Ви можете трасувати методи під час виконання коду на основі вибірок, зберігати дампи купи, переглядати виділення пам’яті та інспектувати подробиці файлів, переданих мережею. Для використання цього інструмента потрібно встановити android:debuggable="true" у AndroidManifest.xml.

Примітка: починаючи з Android Studio 4.1, також можна запускати інструменти профілювання без запуску Android Studio.
Це набір інструментів, який дає змогу інспектувати, змінювати й повторно відтворювати виклики застосунку до графічного драйвера. Для використання цього інструмента потрібно встановити android:debuggable="true" у AndroidManifest.xml.
