Unity Game Optimization
上QQ阅读APP看书,第一时间看更新

The Memory area

The Memory area allows us to inspect the memory usage of the application in Breakdown View in the following two modes: 

  • Simple mode
  • Detailed mode

Simple mode provides only a high-level overview of the memory consumption of subsystems. This include Unity's low-level Engine, the Mono framework (total heap size that is being watched by the garbage collector), graphical assets, audio assets and buffers, and even memory used to store data collected by the Profiler.

Detailed mode shows memory consumption of individual GameObjects and MonoBehaviours for both their native and managed representations. It also has a column explaining the reason why an object may be consuming memory and when it might be deallocated.

The garbage collector is a common feature provided by C#—the Unity's scripting language of choice—that automatically releases any memory we have allocated to store data; but, if it is handled poorly, it has the potential to stall our application for brief moments. This topic, and many more related topics, such as native and managed memory spaces, will be explored in  Chapter 8, Masterful Memory Management .

Note that information only appears in Detailed mode through manual sampling by clicking on the Take Sample <TargetName> button. This is the only way to gather information when using Detailed mode, since performing this kind of analysis automatically for each update would be prohibitively expensive:

Breakdown View also provides a button labelled Gather Object References, which can gather more in-depth memory information pertaining to some objects.

The Memory area will be a useful tool to use when we dive into the complexities of memory management, native versus managed memory, and the garbage collector in Chapter 8, Masterful Memory Management.