Skip to main content
Improve 6. Overhead info.
Source Link
Candid Moon _Max_
  • 2.9k
  • 1
  • 22
  • 39
  1. In Package Manager window you can remove lot's of packages that might be used by default. There you can select Built-in packages and remove lots of things like Physics for example, if you don't use any 3D physics in your application etc.

  2. If you are using UI in the canvas it tends to redraw often. When layout is changed it redraws a whole Canvas. You can make use of shaders to manipulate some visuals to remove this dependency, or draw a Canvas yourself. [I will elaborate on this later, it's a big topic and I am short on the time right now. I am not sure if this was fixed or not, so I will have to do more research and post some code examples maybe if they will be a fit.]

  3. Overhead. The link has lots of useful information about overhead in Unity specifically it can be referred to a lot of things. Unity profiler in general does better job in giving information about processes that run in Unity. During comprehensive optimization I recommend using Deep Profile in Profiler window in Unity.

In the Profiler, the Overhead is the total frame time minus the duration of everything else that is actively measured. It is usually related to the internal processing of the scene. The more complex the scene, the more Overhead it will produce. It also accounts for the vertical synchronization that can be set to a fixed duration with Application.targetFrameRate.

The complexity of the scene does not refer directly to the amount of objects that compose it, but to the processing in general. If you have lots of objects, processing all of them will take more time than just a few. More importantly, the different engine sub-system tasks on those objects (in this case, tasks that are not being actively measured in the Profiler) will be added to this complexity, increasing the Overhead. Depending on the work performed, this increase could be significant or not. This means that it is not possible for us to provide statistics on the complexity of the scene since it depends on many factors.

The Profiler's hierarchy is populated with the processes that are most likely to consume important resources, but lots of hidden tasks will still remain. In order to find what is adding more complexity, or processing to the scene, you could remove or change "aspects" of the scene one by one, then profile and see how that affects the Overhead.

"Aspects" refers to the groups of objects that are processed by some sub-systems, that is 3D or 2D physics, navmesh, sprites, lighting, scripts and plugins, rendering, GUI, audio, video or particles, etc. The aspects could include settings used by the sub-systems. You might find one of these is considerably affecting the performance, and then you can optimize it.


  1. In Package Manager window you can remove lot's of packages that might be used by default. There you can select Built-in packages and remove lots of things like Physics for example, if you don't use any 3D physics in your application etc.

  2. If you are using UI in the canvas it tends to redraw often. When layout is changed it redraws a whole Canvas. You can make use of shaders to manipulate some visuals to remove this dependency, or draw a Canvas yourself. [I will elaborate on this later, it's a big topic and I am short on the time right now. I am not sure if this was fixed or not, so I will have to do more research and post some code examples maybe if they will be a fit.]

  3. Overhead in Unity specifically it can be referred to a lot of things.

  1. In Package Manager window you can remove lot's of packages that might be used by default. There you can select Built-in packages and remove lots of things like Physics for example, if you don't use any 3D physics in your application etc.

  2. If you are using UI in the canvas it tends to redraw often. When layout is changed it redraws a whole Canvas. You can make use of shaders to manipulate some visuals to remove this dependency, or draw a Canvas yourself. [I will elaborate on this later, it's a big topic and I am short on the time right now. I am not sure if this was fixed or not, so I will have to do more research and post some code examples maybe if they will be a fit.]

  3. Overhead. The link has lots of useful information about overhead in Unity. Unity profiler in general does better job in giving information about processes that run in Unity. During comprehensive optimization I recommend using Deep Profile in Profiler window in Unity.

In the Profiler, the Overhead is the total frame time minus the duration of everything else that is actively measured. It is usually related to the internal processing of the scene. The more complex the scene, the more Overhead it will produce. It also accounts for the vertical synchronization that can be set to a fixed duration with Application.targetFrameRate.

The complexity of the scene does not refer directly to the amount of objects that compose it, but to the processing in general. If you have lots of objects, processing all of them will take more time than just a few. More importantly, the different engine sub-system tasks on those objects (in this case, tasks that are not being actively measured in the Profiler) will be added to this complexity, increasing the Overhead. Depending on the work performed, this increase could be significant or not. This means that it is not possible for us to provide statistics on the complexity of the scene since it depends on many factors.

The Profiler's hierarchy is populated with the processes that are most likely to consume important resources, but lots of hidden tasks will still remain. In order to find what is adding more complexity, or processing to the scene, you could remove or change "aspects" of the scene one by one, then profile and see how that affects the Overhead.

"Aspects" refers to the groups of objects that are processed by some sub-systems, that is 3D or 2D physics, navmesh, sprites, lighting, scripts and plugins, rendering, GUI, audio, video or particles, etc. The aspects could include settings used by the sub-systems. You might find one of these is considerably affecting the performance, and then you can optimize it.


Improve answer. Clarify explanation.
Source Link
Candid Moon _Max_
  • 2.9k
  • 1
  • 22
  • 39

I don't have much time at the momentam constantly updating this answer, so I will update my answer a bit laterremove this message when I have stopped.

Even though Unity is game engine, it can be used for many different purposes. It's very convenient to use Unity for mobile development or other PC applications.

Maxing out a device’s capabilities can quickly compromise your game’s performance by overtaxing the hardware, which leads to throttling, poor battery life, and inconsistent performance.

To decrease energy consumption of the application we need to make it do less, and that includes increasing it's performance as well, as we don't want to compute unnecessary things and make CPU, GPU, etc. to consume power.

If you need to get started on performance optimizations then this is a great place to start - Unite Europe 2017 - Performance optimization for beginners.

To use it - you need to set vSyncCount to Don't Sync (?)[which I believe is an enum with a value of 0. That is why QualitySettings.vSyncCount = 2 is mentioned in the documentation].

Note: changing target frame-rate affects input. To have frame-rate independent input - use New Input System that should be coming out of beta in 2020.1 [from experience, it's still in preview but is already pretty stable].

I don't have much time at the moment, so I will update my answer a bit later.

Even though Unity is game engine, it can be used for many different purposes. It's very convenient to use Unity for mobile development or other PC applications.

To use it - you need to set vSyncCount to Don't Sync (?)[which I believe is an enum with a value of 0. That is why QualitySettings.vSyncCount = 2 is mentioned in the documentation].

I am constantly updating this answer, I will remove this message when I have stopped.

Even though Unity is game engine, it can be used for many different purposes. It's very convenient to use Unity for mobile development or other PC applications.

Maxing out a device’s capabilities can quickly compromise your game’s performance by overtaxing the hardware, which leads to throttling, poor battery life, and inconsistent performance.

To decrease energy consumption of the application we need to make it do less, and that includes increasing it's performance as well, as we don't want to compute unnecessary things and make CPU, GPU, etc. to consume power.

If you need to get started on performance optimizations then this is a great place to start - Unite Europe 2017 - Performance optimization for beginners.

To use it - you need to set vSyncCount to Don't Sync (?)[which I believe is an enum with a value of 0. That is why QualitySettings.vSyncCount = 2 is mentioned in the documentation].

Note: changing target frame-rate affects input. To have frame-rate independent input - use New Input System that should be coming out of beta in 2020.1 [from experience, it's still in preview but is already pretty stable].

Grammar/definition. Clarification.
Source Link
Candid Moon _Max_
  • 2.9k
  • 1
  • 22
  • 39
  1. Using lessLimit processing on GPU to the minimum.
  1. In Package Manager window you can remove lot's of packages that might be used by default. There you can select Built-in packages and remove lots of things like Physics for example, if you don't use any 3D physics in your application etc.

  2. If you are using UI in the canvas it tends to redraw very often. When layout is changed it redraws a whole Canvas. You can make use of shaders to manipulate some visuals to remove this dependency, or draw a Canvas yourself. [I will elaborate on this later, it's a big topic and I am short on the time right now. I am not sure if this was fixed or not, so I will have to do more research and post some code examples maybe if they will be a fit.]

  3. Overhead Overhead in Unity specifically it can be referred to a lot of things.

  1. Using less processing on GPU.
  1. In Package Manager window you can remove lot's of packages that might be used by default. There you can select Built-in packages and remove lots of things like Physics for example, if you don't use any 3D physics in your application.

  2. If you are using UI in the canvas it tends to redraw very often. When layout is changed it redraws a whole Canvas. You can make use of shaders to manipulate some visuals to remove this dependency, or draw a Canvas yourself. [I will elaborate on this later, it's a big topic and I am short on the time right now. I am not sure if this was fixed or not, so I will have to do more research and post some code examples maybe if they will be a fit.]

  3. Overhead Overhead in Unity specifically it can be referred to a lot of things.

  1. Limit processing on GPU to the minimum.
  1. In Package Manager window you can remove lot's of packages that might be used by default. There you can select Built-in packages and remove lots of things like Physics for example, if you don't use any 3D physics in your application etc.

  2. If you are using UI in the canvas it tends to redraw often. When layout is changed it redraws a whole Canvas. You can make use of shaders to manipulate some visuals to remove this dependency, or draw a Canvas yourself. [I will elaborate on this later, it's a big topic and I am short on the time right now. I am not sure if this was fixed or not, so I will have to do more research and post some code examples maybe if they will be a fit.]

  3. Overhead in Unity specifically it can be referred to a lot of things.

Improve answer.
Source Link
Candid Moon _Max_
  • 2.9k
  • 1
  • 22
  • 39
Loading
Source Link
Candid Moon _Max_
  • 2.9k
  • 1
  • 22
  • 39
Loading