# 访问播放器中的内存计数器

> Display memory metrics in a built player.

可以使用 [ProfilerRecorder API](/engine/6000.0/script-reference/unity-profiling/profiler-recorder.md) 访问播放器中内存性能分析器 (Memory Profiler) 模块的计数器。

以下示例包含一个简单的脚本，用于收集**总预留内存 (Total Reserved Memory)**、**GC 预留内存 (Reserved Memory)** 和**系统已使用内存 (System Used Memory)** 指标，并将它们显示为 [`GUI.TextArea`](/engine/6000.0/script-reference/unity-engine/gui/text-area.md)。内存性能分析器模块信息属于 [`ProfilerCategory.Memory`](/engine/6000.0/script-reference/unity-profiling/profiler-category/memory.md) Profiler 类别。

```language-csharp
using System.Text;
using Unity.Profiling;
using UnityEngine;

public class MemoryStatsScript : MonoBehaviour
{
    string statsText;
    ProfilerRecorder totalReservedMemoryRecorder;
    ProfilerRecorder gcReservedMemoryRecorder;
    ProfilerRecorder systemUsedMemoryRecorder;

    void OnEnable()
    {
        totalReservedMemoryRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Memory, "Total Reserved Memory");
        gcReservedMemoryRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Memory, "GC Reserved Memory");
        systemUsedMemoryRecorder = ProfilerRecorder.StartNew(ProfilerCategory.Memory, "System Used Memory");
    }

    void OnDisable()
    {
        totalReservedMemoryRecorder.Dispose();
        gcReservedMemoryRecorder.Dispose();
        systemUsedMemoryRecorder.Dispose();
    }

    void Update()
    {
        var sb = new StringBuilder(500);
        if (totalReservedMemoryRecorder.Valid)
            sb.AppendLine($"Total Reserved Memory: {totalReservedMemoryRecorder.LastValue}");
        if (gcReservedMemoryRecorder.Valid)
            sb.AppendLine($"GC Reserved Memory: {gcReservedMemoryRecorder.LastValue}");
        if (systemUsedMemoryRecorder.Valid)
            sb.AppendLine($"System Used Memory: {systemUsedMemoryRecorder.LastValue}");
        statsText = sb.ToString();
    }

    void OnGUI()
    {
        GUI.TextArea(new Rect(10, 30, 250, 50), statsText);
    }
}
```

以下截屏显示了将脚本添加到 [Tanks! 教程项目](https://assetstore.unity.com/packages/essentials/tutorial-projects/tanks-tutorial-46209)的结果。


**Tanks! 教程，其中包含覆加的内存信息:**
![](/api/media?file=/engine/6000.0/media/images/profiler-tanks-memory-overlay.png)

此信息在发行版播放器中可用，[内存性能分析器模块中的其他高级计数器也可用](/engine/6000.0/manual/analysis/profiler/collect-data/visualizing-data/memory/memory.md)。如果要在 Profiler 窗口的自定义模块中查看选定的内存计数器，请使用[性能分析器模块编辑器 (profiler module editor)](/engine/6000.0/manual/analysis/profiler/collect-data/visualizing-data/customizing/module-editor.md) 配置图表。

有关向代码添加性能分析器信息的更多信息，请参阅[向代码添加性能分析信息](/engine/6000.0/manual/analysis/profiler/adding-information-code.md)。

## 其他资源

* [向代码添加性能分析信息](/engine/6000.0/manual/analysis/profiler/adding-information-code.md)
* [可视化性能分析器计数器](/engine/6000.0/manual/analysis/profiler/adding-information-code/creating-custom-counters.md)
* [内存性能分析器模块参考](/engine/6000.0/manual/analysis/profiler/collect-data/visualizing-data/memory/memory.md)
* [内存性能分析器模块简介](/engine/6000.0/manual/analysis/profiler/collect-data/visualizing-data/memory/introduction.md)
