Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


Profiler counters reference

Reference for built-in Profiler counters.
Read time 16 minutesLast updated 7 days ago

Unity has built-in profiler counters which you can use to collect and display metrics in custom Profiler modules. The following tables outline the available built-in profiler counters. This information is also available via the
ProfilerRecorder
API and in the Profiler module editor so you can add them to a custom Profiler module. The following tables contain a list of profiler counters available in Unity:

File access profiler counters

The available file access profiler counters and availability in release (non-development) players are as follows:

Profiler counter

Description

Availability in release (non-development) players

File Bytes ReadTotal number of bytes of information Unity read from this file during the selected frames.Unavailable
File Bytes WrittenTotal number of bytes of information Unity wrote to this file during the selected frames.Unavailable
File Handles OpenThe total number of file handles held open at any time during this frame. This includes files that Unity opens and closes within the same frame.Unavailable
File Reads FinishedNumber of file reads completed during this frame.Unavailable
File Reads StartedNumber of file reads started during this frameUnavailable
File SeeksThe number of file seek operations performed in the local file system this frame. A file seek operation involves a search through the contents of a file.Unavailable
Files ClosedThe total number of files successfully closed in the local file system this frame.Unavailable
Files OpenedThe total number of files successfully opened in the local file system this frame.Unavailable
Reads in FlightThe total number of read operations that were in progress during this frame.Unavailable
For more information about collecting file access data, refer to File Access Profiler module reference.

Asset loading profiler counters

The available asset loading profiler counters and availability in release (non-development) players are as follows:

Profiler counter

Description

Availability in release (non-development) players

Audio ReadsThe number of bytes requested from the AsyncReadManager for an audio load.Unavailable
Entities ReadsThe number of bytes requested from the AsyncReadManager by scripts in the Entities package.Unavailable
Mesh ReadsThe number of bytes requested from the AsyncReadManager for a mesh load.Unavailable
Other ReadsThe number of bytes requested from the AsyncReadManager for an unspecified subsystem.Unavailable
Scripting ReadsThe number of bytes requested from the AsyncReadManager via the scripting API.Unavailable
Texture ReadsThe number of bytes requested from the AsyncReadManager for a texture load.Unavailable
Virtual Texture ReadsThe number of bytes requested from the AsyncReadManager for Virtual Texturing.Unavailable
For more information about collecting asset data, refer to Asset Loading Profiler module reference.

Memory profiler counters

The following table outlines the available memory profiler counters and availability in release (non-development) players.
Tip
You can use the
Object.FindObjectsByType
method to find objects of specific types, and then pass this information to
Profiler.GetRuntimeMemorySizeLong
to get their memory amount and then implement this information in release players. For example, to get the counters for Mesh Count or Mesh Memory, use
Object.FindObjectsByType<Mesh>().length
and then pass these entries to
GetRunTimeMemorySizeLong
. Only use
Find
and its related APIs in development code.
GetRunTimeMemorySizeLong
has an impact on performance, and doesn't provide graphics memory amounts in release builds.

Profiler counter

Description

Availability in release (non-development) players

AnimationClip CountThe total count of loaded AnimationClips.Unavailable
AnimationClip MemoryThe total amount of memory loaded AnimationClips used in bytes.Unavailable
App Committed MemoryThe total amount of committed memory according to the operating system of the platform in bytes.Available
App Resident MemoryThe total amount of resident memory according to the operating system of the platform in bytes.Available
Asset CountThe total number of loaded assets.Unavailable
Audio Reserved MemoryThe Audio system’s estimated reserved memory in bytes.Available
Audio Used MemoryThe Audio system’s estimated memory usage in bytes.Available
AudioClip CountThe total count of loaded AudioClips.Unavailable
AudioClip MemoryThe total amount of memory loaded AudioClips used in bytes.Unavailable
Game Object CountThe total number of GameObject instances in the scene.Unavailable
GC Allocated In FrameThe total size of the managed allocations in the selected frame in bytes.Unavailable
GC Allocation In Frame CountThe amount of managed allocations in the selected frame.Unavailable
GC Reserved MemoryThe total heap size reserved for managed code in bytes. This memory is garbage collected.Available
GC Used MemoryThe used heap size that managed code uses in bytes. This memory is garbage collected.Available
Gfx Reserved MemoryThe estimated amount of reserved memory for Textures, render targets, Shaders, and Mesh data in bytes.Unavailable
Gfx Used MemoryThe estimated amount of memory the driver uses on Textures, render targets, Shaders, and Mesh data in bytes.Unavailable
Material CountThe total count of loaded materials.Unavailable
Material MemoryThe total amount of memory loaded materials used in bytes.Unavailable
Mesh CountThe total count of loaded Meshes.Unavailable
Mesh MemoryThe total amount of memory loaded Meshes used in bytes.Unavailable
Object CountThe number of native object instances in your application.Unavailable
Physics Used MemoryThe total amount of memory that the physics system used in bytes.Unavailable
Physics Reserved Memory(2D)The total amount of memory that the 2D physics system reserved in bytes.Unavailable
Profiler Reserved MemoryThe memory that the Profiler functionality reserves from the system in bytes.Available
Profiler Used MemoryThe memory that the Profiler functionality uses in bytes.Available
Scene Object CountThe total number of dynamic
UnityEngine.Object
instances. This number includes the Game Object Count counter, plus the total number of components, and everything which isn't an asset in the scene.
Unavailable
System Total Used MemoryThe total memory used by all applications running on the device in bytes.Available
System Used MemoryThe total amount of resident memory according to the operating system of the platform in bytes. This value is the same as the App Resident Memory value.Available
Texture CountThe total count of loaded texturesUnavailable
Texture MemoryThe total amount of memory loaded textures used in bytes.Unavailable
Total Reserved MemoryThe total memory reserved in the operating system for your application in bytes.Available
Total Used MemoryThe total memory your application used in bytes.Available
Video Reserved MemoryThe Video system’s estimated reserved memory in bytes.Available
Video Used MemoryThe Video system’s estimated memory usage in bytes.Available
For more information about collecting memory data, refer to Memory Profiler module.

Physics profiler counters

The available physics profiler counters and availability in release (non-development) players are as follows:

Profiler counter

Description

Availability in release (non-development) players

Active ConstraintsThe number of primitive constraints the physics system has processed.Unavailable
Active Dynamic BodiesThe number of Rigidbody components and
ArticulationBody
components that aren't in a sleep state.
Unavailable
Active Kinematic BodiesThe number of active Kinematic Rigidbody components.Unavailable
Articulation BodiesThe number of
ArticulationBody
components in the scene
Unavailable
Broadphase AddsThe total number of colliders that the broadphase algorithm added.Unavailable
Broadphase Adds/RemovesThe total number of colliders that the broadphase algorithm either added or removed.Unavailable
Broadphase RemovesThe total number of colliders that the broadphase algorithm removed.Unavailable
Colliders SyncedThe amount of colliders synced with Transforms.Unavailable
Continuous OverlapsThe number of overlap events which Unity used continuous collision detection to solve.Unavailable
Discreet OverlapsThe number of overlap events which Unity used discrete collision detection to solve.Unavailable
Dynamic BodiesThe number of
Rigidbody
components and
ArticulationBody
components.
Unavailable
Modified OverlapsThe number of overlap events which Unity used the Contact Modification API to modify.Unavailable
Narrowphase Lost TouchesThe total amount of collision events that were lost since the previous frame.Unavailable
Narrowphase New TouchesThe total amount of collision events that appeared as new since the previous frame.Unavailable
Narrowphase TouchesThe total amount of collision events that were either lost or appeared as new since the previous frame.Unavailable
OverlapsThe number of overlap events. An overlapping event is when colliders overlap with each other.Unavailable
Physics QueriesThe total amount of physics queries, such as Raycasts and shapecasts.Unavailable
Rigidbodies SyncedThe amount of Rigidbody components synced with Transforms.Unavailable
Static CollidersThe number of colliders that don't have a Rigidbody or ArticulationBody componentUnavailable
Trigger OverlapsThe number of overlap events with trigger colliders (counted in pairs).Unavailable
For more information about collecting physics data, refer to Physics Profiler module reference.

2D Physics profiler counters

The available 2D physics profiler counters and availability in release (non-development) players are as follows:

Profiler counter

Description

Availability in release (non-development) players

Added ContactsThe number of contacts added in this frame. This includes both Collision and Trigger contacts.Unavailable
Asleep BodiesThe number of Rigidbody2D that were sleeping (not awake) and present in this frame.Unavailable
Asleep ShapesThe number of physics shapes that were sleeping (not awake) and present in this frame.Unavailable
Awake BodiesThe number of Rigidbody2D that were awake and present in this frame.Unavailable
Awake ShapesThe number of physics shapes that were awake and present in this frame.Unavailable
Broadphase PairsThe number of broadphase pairs that the physics system processed in this frame.Unavailable
Broadphase UpdatesThe number of broadphase updates that the physics system processed in this frame.Unavailable
Collision EnterThe number of OnCollisionEnter2D callbacks that the physics system called in this frame.Unavailable
Collision ExitThe number of OnCollisionExit2D callbacks that the physics system called in this frame.Unavailable
Collision StayThe number of OnCollisionStay2D callbacks that the physics system called in this frame.Unavailable
Continuous BodiesThe number of Rigidbody2D with a
Continuous
collision detection mode that were present in this frame.
Unavailable
Discrete BodiesThe number of Rigidbody2D with a
Discrete
collision detection mode that were present in this frame.
Unavailable
Dynamic BodiesThe number of Rigidbody2D with a
Dynamic
body type that were present in this frame.
Unavailable
Dynamic ShapesThe number of physics shapes that were both
Dynamic
and were present in this frame.
Unavailable
GetContacts QueriesThe number of contact retrieval queries that the physics system called this frame. This includes queries such as
Physics2D.GetContacts
,
Collider2D.GetContacts
, and
Rigidbody2D.GetContacts
.
Unavailable
IsTouching QueriesThe number of contact touching queries that the physics system called this frame. This includes queries such as
Physics2D.IsTouching
,
Collider2D.IsTouching
, and
Rigidbody2D.IsTouching
.
Unavailable
Kinematic BodiesThe number of Rigidbody2D with a
Kinematic
body type that were present in this frame.
Unavailable
Overlap QueriesThe number of overlap queries that the physics system called this frame. This includes queries such as
Physics2D.OverlapPoint
,
Physics2D.OverlapCircle
, and
Collider2D.OverlapCollider
.
Unavailable
Particle QueriesThe number of queries that the Particle System called in this frame.Unavailable
Raycast QueriesThe number of ray or line based queries that the physics system called this frame. This includes queries such as
Physics2D.Raycast
and
Physics2D.Linecast
.
Unavailable
Removed ContactsThe number of contacts that the physics system removed in this frame. This includes both Collision and Trigger contacts.Unavailable
Shapecast QueriesThe number of shape swept queries that the physics system called this frame. This includes queries such as
Physics2D.BoxCast
,
Physics2D.CircleCast
, and
Collider2D.Cast
.
Unavailable
Solver Continuous IslandsThe number of islands solved when handling the continuous solving step.Unavailable
Solver Discrete IslandsThe number of contact islands solved when handling the discrete solving step.Unavailable
Solver Simulation CountThe number of times Unity simulated all physics scenes automatically, or by calling
Physics2D.Simulate
or
PhysicsScene2D.Simulate
.
Unavailable
Solver World CountThe total number of physics scenes that were present in this frame.Unavailable
Static BodiesThe number of Rigidbody2D with a
Static
body type that were present in this frame.
Unavailable
StaticThe number of physics shapes that were both Static and were present in this frame.Unavailable
Total BodiesThe total number of
Rigidbody2D
that were present in this frame.
Unavailable
Total CallbacksThe total number of
OnCollisionEnter2D
,
OnCollisionStay2D
,
OnCollisionExit2D
, OnTriggerEnter2D,
OnTriggerStay2D
and
OnTriggerExit2D
callbacks that the physics system called in this frame.
Unavailable
Total ContactsThe total number of contacts that were present in this frame. This includes both Collision and Trigger contacts.Unavailable
Total JointsThe total number of any
Joint2D
that were present in this frame.
Unavailable
Total ShapesThe total number of physics shapes that were present in this frame.Unavailable
Total QueriesThe total number of queries that the physics system called this frame. This includes queries such as
Physics2D.Raycast
and
Physics2D.OverlapPoint
Unavailable
Total Transform Sync CallsThe total number of Transform sync calls that the physics system called in this frame.Unavailable
Transform Parent Sync BodiesThe number of Rigidbody2D that were affected by a Transform sync caused by reparenting a Transform.Unavailable
Transform Parent Sync CollidersThe number of Collider2D that were affected by a Transform sync caused by reparenting a Transform.Unavailable
Transform Sync BodiesThe number of Rigidbody2D that were affected by a Transform sync.Unavailable
Transform Sync CollidersThe number of Collider2D that were affected by a Transform sync.Unavailable
Trigger EnterThe number of OnTriggerEnter2D callbacks that were called in this frame.Unavailable
Trigger ExitThe number of OnTriggerExit2D callbacks that were called in this frame.Unavailable
Trigger StayThe number of OnTriggerStay2D callbacks that were called in this frame.Unavailable
For more information about collecting 2D physics data, refer to 2D Physics Profiler module reference.

Rendering profiler counters

The available rendering profiler counters and availability in release (non-development) players are as follows:

Profiler counter

Description

Availability in release (non-development) players

Batches CountThe total number of batches Unity processed during a frame. This number includes both static and dynamic batches.Available
CPU Main Thread Frame TimeThe time between the start of the frame and the time when the Main Thread finishes the work it performs during that frame.Available when Frame Timing Stats is enabled.
CPU Render Thread Frame TimeThe time between the start of the work on the Render Thread and when Unity calls the
Present
method.
Available when Frame Timing Stats is enabled.
CPU Total Frame TimeThe total CPU frame time. Unity calculates this as the time between the ends of two frames, including any overheads or time spent waiting between frames.Available when Frame Timing Stats is enabled.
Draw Calls CountThe total number of draw calls Unity issued during a frame.Available
Dynamic Batched Draw Calls CountThe number of draw calls Unity combined into dynamic batches.Unavailable
Dynamic Batched Triangles CountThe number of triangles in the GameObjects included in the dynamic batches.Unavailable
Dynamic Batched Vertices CountThe number of vertices in the GameObjects included in the dynamic batches.Unavailable
Dynamic Batches CountThe number of dynamic batches Unity processed during the frame.Unavailable
Dynamic Batching TimeThe time Unity spent creating dynamic batching structures.Unavailable
GPU Frame TimeThe time difference between the beginning and the end of the GPU rendering a single frame.Available when Frame Timing Stats is enabled.
Index Buffer Upload In Frame BytesThe amount of geometry that the CPU uploaded to the GPU in bytes.Available
Index Buffer Upload In Frame CountThe amount of geometry that the CPU uploaded to the GPU in the frame.Available
Instanced Batched Draw Calls CountThe number of draw calls Unity combined into instance batches.Unavailable
Instanced Batched Triangles CountThe number of triangles in the instanced GameObjects.Unavailable
Instanced Batched Vertices CountThe number of vertices in the instanced GameObjects.Unavailable
Instanced Batches CountThe number of batches Unity processed to render instanced GameObjects during a frame.Unavailable
Render Textures BytesThe amount of memory the RenderTextures used in bytes.Available
Render Textures Changes CountThe number of times Unity set one or multiple RenderTextures as render targets during the frame.Available
Render Textures CountThe number of RenderTextures Unity used during the frame.Available
SetPass Calls CountThe number of times Unity switched which shader pass it used to render GameObjects during a frame.Available
Shadow Casters CountThe number of GameObjects that cast shadows in a frame. If a GameObject casts multiple shadows (because multiple lights light it), it has one entry per shadow it casts.Available
Static Batched Draw Calls CountThe number of draw calls Unity combined into static batches.Unavailable
Static Batched Triangles CountThe number of triangles in the GameObjects included in the static batches.Unavailable
Static Batched Vertices CountThe number of vertices in the GameObjects included in the static batches.Unavailable
Static Batches CountThe number of static batches Unity processed during a frame.Unavailable
Triangles CountThe number of triangles Unity processed during a frame.Available
Used Buffers BytesThe amount of memory GPU buffers used in bytes.Available
Used Buffers CountThe total number of GPU buffers. This includes vertex, index and compute buffers and all internal buffers required for rendering.Available
Used Textures BytesThe amount of memory the textures used in bytes.Unavailable
Used Textures CountThe number of textures Unity used during the frame.Unavailable
Vertex Buffer Upload In Frame BytesThe amount of geometry that the CPU uploaded to the GPU in bytes.Available
Vertex Buffer Upload In Frame CountThe amount of geometry that the CPU uploaded to the GPU in the frame.Available
Vertices CountThe number of vertices Unity processed during the frame.Available
Video Memory BytesThe amount of system memory the video in your application used in bytes.Available
Visible Skinned Meshes CountThe number of Skinned Mesh Renderers in the frame.Available
For more information about collecting rendering data, refer to Rendering Profiler module reference.

Virtual texturing profiler counters

The available virtual texturing profiler counters and availability in release (non-development) players are as follows:

Profiler counter

Description

Availability in release (non-development) players

AtlasesThe number of virtual texture spaces or atlases (maximum of 64).Unavailable
Max Cache DemandThe highest cache demand of all GPU caches in the selected frame.Unavailable
Max Cache Mip BiasThe automatic mipmap bias applied to all textures with the same texture format. If this value isn't zero, then the cache isn't large enough to hold all the tiles of that format that are visible. The higher the mipmap bias, the lower the texture quality.Unavailable
Missing Disk DataThe remaining data (in bytes) that your application needed to read from the disk to satisfy the selected frame.Unavailable
Missing Streaming TilesThe number of tiles that were visible on the screen but weren't in video memory.Unavailable
Read From DiskThe number of bytes of disk read operations that Unity completed in the selected frame.Unavailable
Required TilesThe number of texture tiles that were visible on screen. These are the tiles that the shaders tried to sample to render the selected frame.Unavailable
Total CPU Cache SizeThe amount of memory that Unity allocated to store texture tiles after it loaded them from disk.Unavailable
Total GPU Cache SizeThe size of all GPU caches that the Virtual Texturing module allocated in the selected frame.Unavailable
For more information about collecting virtual texturing data, refer to Virtual Texturing module reference.

Additional resources