There are two modes in which you can inspect memory usage of your application. This is selected in the dropdown in the top of the bottom panel.
The simple mode shows how memory is used through out unity on a higher level in realtime on a per frame basis.
Unity reserves memory pools for allocations in order to avoid asking the os for memory too often. This is displayed as a reserved amount and how much is used. The areas covered by this is:
Memory stats are shown for some of the most common asset/object types and include the count and the used memory (main and video memory)
The Detailed View, will let you take a snapshot of the current state. Use the “Take Sample” button to capture detailed memory usage. Obtaining this data takes some time, so the Detailed View should not be expected to give you real-time details. After taking a sample the profiler window will be updated with a treeview where you can explore different memory usage.
This will display individual asset and game object memory usage. It will also display a reason for an object to be in memory. The reasons can be of the following:
When in the editor, clicking on an object in the list, will take you to the object in either the project or the scene view.
When profiling in the editor, all numbers displayed by the memory profiler are the usage by the editor. These will be somewhat larger than when running in a player, because of editor overhead. For more precise numbers and memory usage for your app, use the profiler connection to connect to the running player. This will give the actual usage on the device.
Memory reported under System.ExecutableAndDlls
is read-only memory, therefore OS might discard these pages at need and later reload from the file system. So it makes little memory pressure and it rarely directly contributes to OS decision to kill application. Also some of these pages might be shared with other applications (which are using the same frameworks).