private void LogObjectInfo(ResourcesMemoryTracker.ObjectInfo info) { this.Log("name: {0}\tsize: {1}", new object[] { info.Name, this.ToMB(info.Size) }); }
private void DoTrack(ResourcesMemoryTracker.TrackTypeInfo info) { uint num = 0u; List <ResourcesMemoryTracker.ObjectInfo> list = new List <ResourcesMemoryTracker.ObjectInfo>(); Object[] array = Object.FindObjectsOfTypeIncludingAssets(info.TrackType); Object[] array2 = array; for (int i = 0; i < array2.Length; i++) { Object obj = array2[i]; ResourcesMemoryTracker.ObjectInfo objectInfo = new ResourcesMemoryTracker.ObjectInfo(obj); list.Add(objectInfo); num += objectInfo.Size; } this.Log("-----------{0} size: {1} percent: {2}--------------", new object[] { info.TrackType.get_Name(), this.ToMB(num), this.ToPercent(num / ResourcesMemoryTracker.TotalAllocatedMemory) }); if (info.GroupFunction != null) { using (IEnumerator <IGrouping <object, ResourcesMemoryTracker.ObjectInfo> > enumerator = Enumerable.GroupBy <ResourcesMemoryTracker.ObjectInfo, object>(list, info.GroupFunction).GetEnumerator()) { while (enumerator.MoveNext()) { IGrouping <object, ResourcesMemoryTracker.ObjectInfo> current = enumerator.get_Current(); this.Log("---group {0} begin---", new object[] { current.get_Key() }); uint num2 = 0u; List <ResourcesMemoryTracker.ObjectInfo> list2 = Enumerable.ToList <ResourcesMemoryTracker.ObjectInfo>(current); list2.Sort(delegate(ResourcesMemoryTracker.ObjectInfo x, ResourcesMemoryTracker.ObjectInfo y) { if (x.Size != y.Size) { return(y.Size.CompareTo(x.Size)); } return(x.Name.CompareTo(y.Name)); }); using (List <ResourcesMemoryTracker.ObjectInfo> .Enumerator enumerator2 = list2.GetEnumerator()) { while (enumerator2.MoveNext()) { ResourcesMemoryTracker.ObjectInfo current2 = enumerator2.get_Current(); num2 += current2.Size; this.LogObjectInfo(current2); } } this.Log("---group {0} end : size: {1} percent: {2}", new object[] { current.get_Key(), this.ToMB(num2), this.ToPercent(num2 / num) }); } } } else { using (IEnumerator <ResourcesMemoryTracker.ObjectInfo> enumerator3 = Enumerable.OrderByDescending <ResourcesMemoryTracker.ObjectInfo, uint>(list, (ResourcesMemoryTracker.ObjectInfo x) => x.Size).GetEnumerator()) { while (enumerator3.MoveNext()) { ResourcesMemoryTracker.ObjectInfo current3 = enumerator3.get_Current(); this.LogObjectInfo(current3); } } } }