Доступ к счетчикам памяти в игроках
Вы можете использовать ProfilerRecorder API для доступа к счетчикам модуля Memory Profiler в плеере.
В следующем примере содержится простой скрипт, который собирает показатели Общая зарезервированная память, GC Зарезервированная память и Используемая системная память и отображает их в качестве показателей GUI.TextArea. Сведения о модуле Память Profiler относятся к категории ProfilerCategory.Memory Profiler.
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!.
Эта информация доступна в проигрывателях релиза, как и другие счетчики высокого уровня , доступные в модуле Память Profiler. Если вы хотите просмотреть выбранные счетчики памяти в пользовательском модуле в окне Profiler, используйте редактор модуля Profiler для настройки диаграммы.
Дополнительные сведения о добавлении информации профиля в код см. в Добавление информации профиля в код.