public static MemoryElement GetTreeRoot(ObjectMemoryInfo[] memoryObjectList, int[] referencesIndices)
        {
            UnityEditor.ObjectInfo[] array = new UnityEditor.ObjectInfo[memoryObjectList.Length];
            for (int i = 0; i < memoryObjectList.Length; i++)
            {
                array[i] = new UnityEditor.ObjectInfo {
                    instanceId = memoryObjectList[i].instanceId, memorySize = memoryObjectList[i].memorySize, reason = memoryObjectList[i].reason, name = memoryObjectList[i].name, className = memoryObjectList[i].className
                };
            }
            int num2 = 0;

            for (int j = 0; j < memoryObjectList.Length; j++)
            {
                for (int k = 0; k < memoryObjectList[j].count; k++)
                {
                    int index = referencesIndices[k + num2];
                    if (array[index].referencedBy == null)
                    {
                        array[index].referencedBy = new List <UnityEditor.ObjectInfo>();
                    }
                    array[index].referencedBy.Add(array[j]);
                }
                num2 += memoryObjectList[j].count;
            }
            MemoryElement element = new MemoryElement();

            Array.Sort <UnityEditor.ObjectInfo>(array, new Comparison <UnityEditor.ObjectInfo>(MemoryElementDataManager.SortByMemoryClassName));
            element.AddChild(new MemoryElement("Scene Memory", GenerateObjectTypeGroups(array, ObjectTypeFilter.Scene)));
            element.AddChild(new MemoryElement("Assets", GenerateObjectTypeGroups(array, ObjectTypeFilter.Asset)));
            element.AddChild(new MemoryElement("Builtin Resources", GenerateObjectTypeGroups(array, ObjectTypeFilter.BuiltinResource)));
            element.AddChild(new MemoryElement("Not Saved", GenerateObjectTypeGroups(array, ObjectTypeFilter.DontSave)));
            element.AddChild(new MemoryElement("Other", GenerateObjectTypeGroups(array, ObjectTypeFilter.Other)));
            element.children.Sort(new Comparison <MemoryElement>(MemoryElementDataManager.SortByMemorySize));
            return(element);
        }
 public static MemoryElement GetTreeRoot(ObjectMemoryInfo[] memoryObjectList, int[] referencesIndices)
 {
     UnityEditor.ObjectInfo[] array = new UnityEditor.ObjectInfo[memoryObjectList.Length];
     for (int i = 0; i < memoryObjectList.Length; i++)
     {
         array[i] = new UnityEditor.ObjectInfo { instanceId = memoryObjectList[i].instanceId, memorySize = memoryObjectList[i].memorySize, reason = memoryObjectList[i].reason, name = memoryObjectList[i].name, className = memoryObjectList[i].className };
     }
     int num2 = 0;
     for (int j = 0; j < memoryObjectList.Length; j++)
     {
         for (int k = 0; k < memoryObjectList[j].count; k++)
         {
             int index = referencesIndices[k + num2];
             if (array[index].referencedBy == null)
             {
                 array[index].referencedBy = new List<UnityEditor.ObjectInfo>();
             }
             array[index].referencedBy.Add(array[j]);
         }
         num2 += memoryObjectList[j].count;
     }
     MemoryElement element = new MemoryElement();
     Array.Sort<UnityEditor.ObjectInfo>(array, new Comparison<UnityEditor.ObjectInfo>(MemoryElementDataManager.SortByMemoryClassName));
     element.AddChild(new MemoryElement("Scene Memory", GenerateObjectTypeGroups(array, ObjectTypeFilter.Scene)));
     element.AddChild(new MemoryElement("Assets", GenerateObjectTypeGroups(array, ObjectTypeFilter.Asset)));
     element.AddChild(new MemoryElement("Builtin Resources", GenerateObjectTypeGroups(array, ObjectTypeFilter.BuiltinResource)));
     element.AddChild(new MemoryElement("Not Saved", GenerateObjectTypeGroups(array, ObjectTypeFilter.DontSave)));
     element.AddChild(new MemoryElement("Other", GenerateObjectTypeGroups(array, ObjectTypeFilter.Other)));
     element.children.Sort(new Comparison<MemoryElement>(MemoryElementDataManager.SortByMemorySize));
     return element;
 }
Ejemplo n.º 3
0
 public MemoryElement(UnityEditor.ObjectInfo memInfo, bool finalize)
 {
     this.expanded        = false;
     this.memoryInfo      = memInfo;
     this.name            = this.memoryInfo.name;
     this.totalMemory     = (memInfo == null) ? 0 : memInfo.memorySize;
     this.totalChildCount = 1;
     if (finalize)
     {
         this.children = new List <MemoryElement>();
     }
 }
        private static ObjectTypeFilter GetObjectTypeFilter(UnityEditor.ObjectInfo info)
        {
            switch (info.reason)
            {
            case 1:
                return(ObjectTypeFilter.BuiltinResource);

            case 2:
                return(ObjectTypeFilter.DontSave);

            case 3:
            case 8:
            case 9:
                return(ObjectTypeFilter.Asset);

            case 10:
                return(ObjectTypeFilter.Other);
            }
            return(ObjectTypeFilter.Scene);
        }
 private static int SortByMemoryClassName(UnityEditor.ObjectInfo x, UnityEditor.ObjectInfo y)
 {
     return(y.className.CompareTo(x.className));
 }