Profiler.GetMonoUsedSizeLong
Declaration
public static long GetMonoUsedSizeLong();Возвращаемое значение
длинный Возвращает длинное целое значение используемой памяти.
Описание
Получает выделенную управляемую память для активных объектов и несобранных объектов.
Эта функция возвращает количество выделенной управляемой памяти для всех объектов, как живых, так и не собранных. Всегда вызовайте GC.Collect перед вызовом этой функции, потому что нессылаемые объекты по-прежнему занимают пространство, пока сборщик мусора (GC) не соберет их. Это возвращает постоянно увеличивающееся значение до вызова GC.Collect.
Размер Profiler.GetMonoHeapSizeLong может уменьшиться после последующего вызова GC.Collect, если первый вызов GC.Collect собрал все оставшиеся объекты в секции стека. Выделение новой памяти может также косвенно вновь вызвать GC.Collect, и если он найдет больше объектов, готовых к сбору после первого вызова, это может еще больше уменьшить значение, возвращаемое Profiler.GetMonoUsedSizeLong. Кроме того, Unity может выделить управляемую память на потоках, или потоковый код может избавиться от указателей на управляемые выделения, так что, хотя может показаться, что никакой код не должен изменять количество управляемых выделений между двумя точками измерения, это не обязательно так.
using UnityEngine; using System.Collections; using UnityEngine.Profiling;
class GetMonoExample : MonoBehaviour { void Update() { System.GC.Collect(); System.GC.WaitForPendingFinalizers(); Debug.Log("Mono used size" + Profiler.GetMonoUsedSizeLong() + "Bytes"); } }