The CPU Usage ProfilerA window that helps you to optimize your game. It shows how much time is spent in the various areas of your game. For example, it can report the percentage of time spent rendering, animating, or in your game logic. More info
See in Glossary module has some universal operations to make it easier to navigate between views.
To focus on a selected sample, press the F key. If you’ve selected nothing, this shows the default zoom level.
When you change to the Hierarchy, Raw Hierarchy or Inverted Hierarchy view, your selection carries over, as long as the sample is on the main thread. If you can’t immediately find the selection, press the F key to focus it.
To zoom in on areas of the Timeline view’s axis:
Press the A key on your keyboard to reset the zoom so that the entire frame time is visible.
The following options are available to manage the display of threads:
You can enable full call stacks for samples that GC.Alloc
, UnsafeUtility.Malloc
, and JobHandle.Complete
emit. To enable these call stacks:
GC.Alloc
samples.You can use this functionality whether you profile in the Unity Editor or on a running player. This only takes effect for the frames you profile after you enable this setting.
To investigate call stacks further:
To open the full call stack details:
The Related Data view lists the metadata associated with this sample, which might include a UnityEngine.Object
that it was associated with. For any metadata entry that isn’t associated with a UnityEngine.Object
, the name displays as N/A in this panel. When you select an N/A entry, the Profiler displays the meta data, including the call stack in the bottom half of the details view.
Some samples that Unity reports has metadata built in, such as Camera.Render
samples linked to the Camera
GameObjectThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
See in Glossary that does the rendering. Unity reports these objects via their instance ID and resolves them to a name in the Profiler window, if you profile in Play mode. When you click on one of these objects, Unity tries to find the object via the SceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary hierarchy and ping it.
Because the association uses the instance ID, pinging only works when you profile your application in Play mode, and for as long as the object still exists. For GC.Alloc
samples, this view displays a list of N/A
items, one for each allocation that happened at this hierarchy level, with the size of the allocation listed in the GC.Alloc column.
For more information about these markers, refer to the documentation on Profiler MarkersPlaced in code to describe a CPU or GPU event that is then displayed in the Unity Profiler window. Added to Unity code by default, or you can use ProfilerMarker API to add your own custom markers. More info
See in Glossary.
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.