# Memory in Unity

> Manage and optimize memory usage in Unity applications.

To ensure your application runs with no performance issues, it’s important to understand how Unity uses and allocates memory.

| **Topic**                                                                                                | **Description**                                                                                          |
| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| **[Memory in Unity introduction](/engine/7000.0/manual/analysis/performance-memory/overview.md)**        | Understand the different ways that Unity manages memory.                                                 |
| **[Managed memory](/engine/7000.0/manual/analysis/performance-memory/managed-memory.md)**                | Automatically manage the release and allocation of memory in your application.                           |
| **[Native memory](/engine/7000.0/manual/analysis/performance-memory/native-memory.md)**                  | Understand how Unity controls memory in its native C++ layer.                                            |
| **[Using unmanaged collection types](/engine/7000.0/manual/analysis/performance-memory/collections.md)** | Use the unmanaged data structures in the `Unity.Collections` namespace for jobs and Burst-compiled code. |

## Additional resources

* [Memory Profiler package](https://docs.unity3d.com/Packages/com.unity.memoryprofiler@latest)
* [Memory Profiler module](/engine/7000.0/manual/analysis/profiler/visualizing-data/memory.md)
* [Job system overview](/engine/7000.0/manual/scripting/programming-distribute-work-threads/job-system.md)
