Addressables Profiler module
The Addressables Profiler is a Unity Editor Profiler module that you can use to find out what content is loaded from Addressables.
Prerequisites
- Basic Profiler usage supported from Unity 2021 or newer. To view detailed Profiler information 2022.2 or newer is required. All information in this documentation is for editor version 2022.2.
- Build Reports must be enabled and the runtime being profiled requires a build report. To enable build reports, go to the Editor preferences, select the Addressables preferences, then enable Debug Build Layout.
- Collecting information about the running content requires build time data collection information for the debug build layout. These files are stored in the folder
<Project Directory>/Library/com.unity.addressables/buildReports
. Each build you make creates a new build report file in this directory. When running the Profiler, any incoming Profiler data from the Profiler target is synced and looks for the build report file for that runtime in thebuildReports
folder. If the build report doesn't exist, such as if the project was built using a different machine, then the Profiler doesn't display the information for that data. Select Find in file system to opens a file select window, which can you can use to locate a build report file on disk elsewhere. - The Unity Profiling Core API package is required for the Profiler to run. To install this package either install through the Package Manager or though the Addressables preferences window when enabling Debug Build Layout.
- The Profiler module doesn't support the Play Mode Scripts Use Asset Database (Fastest). The content must be built and using Use Existing Build based Play Mode Scripts.
Open the Profiler module
To open the Addressables Profiler:
- Open the Profiler window (Window > Analysis > Profiler).
- In the top right of the Profiler window select the dropdown button labeled Profiler Modules.
- Enable the option named Addressable Assets.
View the module
The module view can be used to observe how many AssetBundles, assets, scenes, and catalogs are loaded at the frame in time.
The following screenshot displays three assets and one Scene, from one catalog, and six AssetBundles:
When you select a frame, the detail pane fills with information for that frame and displays a tree view for the loaded content.
To change what content is displayed, select the detail pane toolbar dropdown button View. It has the following options:
- Groups: Include groups in the tree view.
- Asset Bundles: Include AssetBundles in the tree view.
- Assets: Include assets in the tree view.
- Objects: Include the objects that are loaded within an asset.
- Assets not loaded: Display assets that are within a loaded bundle, but not actively loaded.
The details pane has two regions. On the left side is the Tree View of the content, which displays loaded content and you can expand to display in depth content. On the right side is the Details Inspector, which displays detailed information for the content selected from the Tree View.
Content Tree View
You can enable or disable the Tree View columns based on your preferences. Context click on the Tree View header to display a list of the available columns.
Each column displays information depending on the content in the row:
Column | Description |
---|---|
Name | Depending on the type, displays either: - The Group name -AssetBundle file name - The address of the asset, or the asset path if the address isn't used - Object name, or asset type for scenes. |
Type | The type of the asset or object. |
Handles | Number of Addressables handles that actively hold onto the content. This is often referred to as Reference Count. During loading there is an additional handle to the content. |
Status | The state of the content at the time, which can be: - Queued: An AssetBundle is in the download queue. - Downloading: An AssetBundle is being downloaded. - Loading: The content is being loaded in the background. - Active: The content is loaded and in use. - Released: The content has been released and there are no more active handles to the content, but might still be in memory. Refer to Memory management for more information. |
% | If the Status is Downloading or Loading, this displays the percentage progress of the download or load operation. |
Source | Displays where the AssetBundle was loaded from: - Local: Loaded from a local file on disk. - Cache: Previously downloaded and cached to disk, and loading was from the cached file. - Download: The AssetBundle hadn't been cached and needed to be downloaded. |
Refs By | Number of elements that reference this content. |
Refs To | Number of elements that this content references. |
Released assets
When content is released from Addressables it might still be in memory until all content from the AssetBundle is released, and any other AssetBundle that has a dependency on any asset within the AssetBundle is also released.
Released content is indicated by a faded, or grayed out font color in the Content Tree view. Refer to Memory management for more information on how Addressables manages memory.
Filter content
You can use the search bar in the details pane to filter the content name. You can use search filter syntax to find other content:
- Handles:
h
- Type:
assetType
,t
- Status:
s
- RefsTo:
rt
,r
- RefsBy:
rb
,p
- Source:
bundlesource
,bs
,b
Filter syntax is <tag>:<evaluation>
, where the field is a numerical field, for example handles:3
. The default equality is =
. You can change the equality to greater than >
or less than <
by including the symbol before the number, for example Handles:>2
.
You can either use the column name without a space, or with the shorthand tag to filter.
You can also use the type filter to filter by inclusion type. Use explicit
where an asset is explicitly included in a group through Addressables, or implicit
, where the asset was included in the AssetBundle because another included references to it. For example, type:explicit
.
Inspect content details
When you select content from the Addressables Profiler module, the Inspector displays detailed information about the content, as follows:
Selected content in the Inspector
Section | Description |
---|---|
Selection Details (A) | Contains detailed information, including the source, load path, compression, and group of the asset. |
Help (B) | Contains information including any hints for any settings that might not be intended. |
References (C) | Contains information about references to and from other AssetBundles. |