Profiling your application is the best way to measure its performance. You can use different profiling tools to understand where there might be any issues with elements of your application including memory usage, CPU performance, GPU performance, and your custom scriptsA piece of code that allows you to create your own Components, trigger game events, modify Component properties over time and respond to user input in any way you like. More info
See in Glossary.
Unity has several profiling and analysis tools to measure the performance of your application:
Tool | Description |
---|---|
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 |
Measures the performance of the Unity Editor, your application in Play mode, or connects to a device running your application in development mode. |
Memory Profiler | Provides in-depth memory performance analysis. |
Profiling Core package | Provides APIs you can use to add contextual information to Unity Profiler captures. For more information, refer to Adding profiling information to your code. |
Profile Analyzer | Compares two profiling datasets together to analyze how your changes affect your application’s performance. |
Frame Debugger | Provides a way to measure the graphical performance of your application. |
Project Auditor | Creates a report that describes issues about the scripts, assets, and code in your project. |
Alongside the Unity Profiler, use platform-specific profiling tools to ensure your application runs as expected. These tools have the most utility on platforms that can use IL2CPPA Unity-developed scripting back-end which you can use as an alternative to Mono when building projects for some platforms. More info
See in Glossary to produce a C++ version of the project. These native code versions provide transparent call stacks and high-resolution method timings that are unavailable when running under Mono.
The following list provides some examples of available profiling tools. You can also use Unity’s low level native plug-in Profiler API to export profiling data to third-party profiling tools.
Tool | Description |
---|---|
Android GPU Inspector | A tool by Google for general Android GPU profiling. |
Streamline Performance Analyzer | A tool by ARM to analyze devices with ARM CPUs. |
Arm Performance Studio | A selection of tools by ARM to analyze Mali GPU devices. |
PVRTune | A tool by Imagination Technologies for Imagination PowerVR GPU devices. |
Snapdragon Profiler | A tool by Qualcomm for GPU and system profiling of Qualcomm chip devices. |
Tool | Description |
---|---|
Profiling apps using Instruments | Use Xcode’s inbuilt profiling tool to analyze your application. |
Metal Debugger | Analyzes projects that use the Metal API. |
Tool | Description |
---|---|
AMD uProf | A profiling tool by AMD for performance analysis. |
Intel Performance Analyzers | Tools by Intel for graphics performance analysis. |
NVIDIA Nsight Graphics | A tool by NVIDIA for graphics debugging and profiling. |
PIX on Windows | A tool by Microsoft for GPU performance tuning and debugging. |
Superluminal | A profiler by Superluminal for C++ applications. |
VTune | A tool by Intel for CPU and GPU performance profiling. |
Windows Performance Toolkit | Microsoft’s collection of performance monitoring tools. |
Visual Studio Graphics Diagnostics | Graphics debugging and profiling tools in Visual Studio. |
RenderDoc | A graphics debugging tool by RenderDoc for analyzing rendering. |
Radeon Developer Tool Suite | Tools by AMD for GPU profiling and debugging. |