All Of Memory tab
The All Of Memory tab displays a breakdown of all the memory in the snapshot that Unity tracks. The memory usage visualized in this tab usually contains large sections of memory that either Unity or the current platform manages. Use this tab to see how much of your application's memory use isn't related to Unity objects, or to identify memory problems in your application that aren't visible in the Unity objects tab.
The All Of Memory tab
The table in this tab displays the proportion of tracked memory that each entry uses. By default, the rows in the table are collapsed. Select the arrow icon in the description column of any row to expand it and see the child members of that row. Select the arrow icon in any expanded row to collapse it.
The All Of Memory tab splits tracked memory into four different top-level categories. The following table describes each category:
Category | Description |
---|---|
Managed | Displays all Virtual Machine and Managed Heap memory allocations. The Managed Heap contains data related to Managed Objects and the space that has been reserved for them. It is managed by the Scripting Garbage Collector, so that any managed objects that no longer have a references chain to a root are collected. The 'reserved' amount in this category may be quickly reused if needed and if any new allocations fit within one of the free spaces. Check Managed memory documentation page for more details. |
Native | Displays all memory that Unity allocated internally for different native objects, such Scene Objects (Game Objects and their Components), Assets and Managers, Native Allocations including Native Arrays and other Native Containers, CPU side of Graphics Asset memory, and other. This doesn't include Graphics, which is shown in a separate category. Expand this group to see the different kinds of native memory that Unity tracks. The Unity Objects subgroup displays memory that any Unity object in your application, such as a Shader or Texture2D, uses. Use this information to find areas where you could optimize memory use; you can then find these objects in the Unity Objects tab to inspect them in more detail. The Unity Subsystems subgroup displays memory that installed modules or systems use. You can find which modules use the most memory and, if any aren't used, uninstall them to reduce how much memory your application needs. |
Executables & Mapped | Displays the memory taken up by the build code of the application, including all shared libraries and assemblies, managed and native. This value is not yet reported consistently on all platforms. You can reduce this memory usage by using a higher code stripping level and by reducing your dependencies on different modules and libraries. |
Graphics (Estimated) | Displays how much memory is used by the Graphics Driver and the GPU to visualize your application. The information is based on the tracking of graphics resource allocations within Unity. This includes RenderTextures, Textures, Meshes, Animations and other graphics buffers which are allocated by Unity or Scripting API. Use All Of Memory tab to explore graphics resources. Not all these objects' memory is represented in this category. For example, Read/Write enabled graphics assets need to retain a copy in CPU-accessible memory, which doubles their total memory usage. Use Unity Objects tab to explore total memory usage of Unity Objects. Also, not necessarily all memory from these type of objects resides in GPU memory. Memory Profiler is unable to get exact residence information for graphics resources. |
Untracked | Memory that the memory profiler cannot yet account for, due to platform specific requirements, potential bugs or other gaps in memory tracking. The size of Untracked memory is determined by analyzing all allocated regions of the process and subtracting known to Unity memory manager. To analyze this memory further, you will need to use a platform specific profiler. |
The Native and Managed groups have a Reserved subgroup which contains memory that Unity allocated but doesn't use at the moment of capture. For more information on how to adjust how Unity reserves memory for this purpose, see Memory allocator customization. You can enable "Show reserved memory breakdown" to see more detailed breakdown of this group.
Table mode
Use Table Mode dropdown to see Allocated, Resident Memory usage of allocations, and their relative impact on the total usage. The dropdown changes the memory columns the table displays:
- Allocated Memory - shows only Allocated memory, % Impact is shown against Allocated Memory In Table
- Resident Memory on Device - shows only Resident memory, % Impact is shown against Resident Memory In Table
- Allocated and Resident Memory on Device - shows Allocated and Resident memory, % Impact is shown against Allocated Memory In Table
For more information on the Resident Memory see Memory Usage On Device.