489 lines
12 KiB
C#
489 lines
12 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Text;
|
|
using MAI2.Util;
|
|
using MAI2System;
|
|
using Manager;
|
|
using UnityEngine;
|
|
using UnityEngine.Profiling;
|
|
|
|
namespace MAI2
|
|
{
|
|
// Token: 0x02000711 RID: 1809
|
|
public class Profiler
|
|
{
|
|
// Token: 0x170007BD RID: 1981
|
|
// (get) Token: 0x060041EE RID: 16878 RVA: 0x0017211E File Offset: 0x0017131E
|
|
// (set) Token: 0x060041EF RID: 16879 RVA: 0x00172126 File Offset: 0x00171326
|
|
public float UpdateInterval
|
|
{
|
|
get
|
|
{
|
|
return this.updateInterval_;
|
|
}
|
|
set
|
|
{
|
|
this.updateInterval_ = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007BE RID: 1982
|
|
// (get) Token: 0x060041F0 RID: 16880 RVA: 0x0017212F File Offset: 0x0017132F
|
|
public float UsedHeap
|
|
{
|
|
get
|
|
{
|
|
return this.usedHeap_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007BF RID: 1983
|
|
// (get) Token: 0x060041F1 RID: 16881 RVA: 0x00172137 File Offset: 0x00171337
|
|
public float UsedMono
|
|
{
|
|
get
|
|
{
|
|
return this.usedMono_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007C0 RID: 1984
|
|
// (get) Token: 0x060041F2 RID: 16882 RVA: 0x0017213F File Offset: 0x0017133F
|
|
public float TotalMono
|
|
{
|
|
get
|
|
{
|
|
return this.totalMono_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007C1 RID: 1985
|
|
// (get) Token: 0x060041F3 RID: 16883 RVA: 0x00172147 File Offset: 0x00171347
|
|
public float TotalAllocatedMemory
|
|
{
|
|
get
|
|
{
|
|
return this.totalAllocatedMemory_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007C2 RID: 1986
|
|
// (get) Token: 0x060041F4 RID: 16884 RVA: 0x0017214F File Offset: 0x0017134F
|
|
public float TotalReservedMemory
|
|
{
|
|
get
|
|
{
|
|
return this.totalReservedMemory_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007C3 RID: 1987
|
|
// (get) Token: 0x060041F5 RID: 16885 RVA: 0x00172157 File Offset: 0x00171357
|
|
public int TotalTextures
|
|
{
|
|
get
|
|
{
|
|
return this.totalTextures_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007C4 RID: 1988
|
|
// (get) Token: 0x060041F6 RID: 16886 RVA: 0x0017215F File Offset: 0x0017135F
|
|
public int TotalMeshes
|
|
{
|
|
get
|
|
{
|
|
return this.totalMeshes_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007C5 RID: 1989
|
|
// (get) Token: 0x060041F7 RID: 16887 RVA: 0x00172167 File Offset: 0x00171367
|
|
public float UsedTextureMemory
|
|
{
|
|
get
|
|
{
|
|
return this.usedTextureMemory_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007C6 RID: 1990
|
|
// (get) Token: 0x060041F8 RID: 16888 RVA: 0x0017216F File Offset: 0x0017136F
|
|
public float UsedMeshMemory
|
|
{
|
|
get
|
|
{
|
|
return this.usedMeshMemory_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007C7 RID: 1991
|
|
// (get) Token: 0x060041F9 RID: 16889 RVA: 0x00172177 File Offset: 0x00171377
|
|
public int TotalGameObjects
|
|
{
|
|
get
|
|
{
|
|
return this.totalGameObjects_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007C8 RID: 1992
|
|
// (get) Token: 0x060041FA RID: 16890 RVA: 0x0017217F File Offset: 0x0017137F
|
|
public int TotalComponents
|
|
{
|
|
get
|
|
{
|
|
return this.totalComponents_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007C9 RID: 1993
|
|
// (get) Token: 0x060041FB RID: 16891 RVA: 0x00172187 File Offset: 0x00171387
|
|
public int TotalMaterials
|
|
{
|
|
get
|
|
{
|
|
return this.totalMaterials_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007CA RID: 1994
|
|
// (get) Token: 0x060041FC RID: 16892 RVA: 0x0017218F File Offset: 0x0017138F
|
|
public int TotalObjects
|
|
{
|
|
get
|
|
{
|
|
return this.totalObjects_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007CB RID: 1995
|
|
// (get) Token: 0x060041FD RID: 16893 RVA: 0x00172197 File Offset: 0x00171397
|
|
public float UsedGameObjectMemory
|
|
{
|
|
get
|
|
{
|
|
return this.usedGameObjectMemory_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007CC RID: 1996
|
|
// (get) Token: 0x060041FE RID: 16894 RVA: 0x0017219F File Offset: 0x0017139F
|
|
public float UsedComponentMemory
|
|
{
|
|
get
|
|
{
|
|
return this.usedComponentMemory_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007CD RID: 1997
|
|
// (get) Token: 0x060041FF RID: 16895 RVA: 0x001721A7 File Offset: 0x001713A7
|
|
public float UsedMaterialMemory
|
|
{
|
|
get
|
|
{
|
|
return this.usedMaterialMemory_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007CE RID: 1998
|
|
// (get) Token: 0x06004200 RID: 16896 RVA: 0x001721AF File Offset: 0x001713AF
|
|
public float UsedObjectMemory
|
|
{
|
|
get
|
|
{
|
|
return this.usedObjectMemory_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007CF RID: 1999
|
|
// (get) Token: 0x06004201 RID: 16897 RVA: 0x001721B7 File Offset: 0x001713B7
|
|
public int FPS
|
|
{
|
|
get
|
|
{
|
|
return this.framesPerSecond_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007D0 RID: 2000
|
|
// (get) Token: 0x06004202 RID: 16898 RVA: 0x001721BF File Offset: 0x001713BF
|
|
public int FPS_Min
|
|
{
|
|
get
|
|
{
|
|
return this.minFPS;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007D1 RID: 2001
|
|
// (get) Token: 0x06004203 RID: 16899 RVA: 0x001721C7 File Offset: 0x001713C7
|
|
public int FPS_Max
|
|
{
|
|
get
|
|
{
|
|
return this.maxFPS;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007D2 RID: 2002
|
|
// (get) Token: 0x06004204 RID: 16900 RVA: 0x001721CF File Offset: 0x001713CF
|
|
public DateTime StartTime
|
|
{
|
|
get
|
|
{
|
|
return this.startTime_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007D3 RID: 2003
|
|
// (get) Token: 0x06004205 RID: 16901 RVA: 0x001721D7 File Offset: 0x001713D7
|
|
public int GC
|
|
{
|
|
get
|
|
{
|
|
return this.garbageCollect_;
|
|
}
|
|
}
|
|
|
|
// Token: 0x170007D4 RID: 2004
|
|
// (get) Token: 0x06004206 RID: 16902 RVA: 0x001721DF File Offset: 0x001713DF
|
|
// (set) Token: 0x06004207 RID: 16903 RVA: 0x001721E7 File Offset: 0x001713E7
|
|
public bool UpdateTexture { get; set; }
|
|
|
|
// Token: 0x170007D5 RID: 2005
|
|
// (get) Token: 0x06004208 RID: 16904 RVA: 0x001721F0 File Offset: 0x001713F0
|
|
// (set) Token: 0x06004209 RID: 16905 RVA: 0x001721F8 File Offset: 0x001713F8
|
|
public bool UpdateMesh { get; set; }
|
|
|
|
// Token: 0x170007D6 RID: 2006
|
|
// (get) Token: 0x0600420A RID: 16906 RVA: 0x00172201 File Offset: 0x00171401
|
|
// (set) Token: 0x0600420B RID: 16907 RVA: 0x00172209 File Offset: 0x00171409
|
|
public bool UpdateGameObject { get; set; }
|
|
|
|
// Token: 0x170007D7 RID: 2007
|
|
// (get) Token: 0x0600420C RID: 16908 RVA: 0x00172212 File Offset: 0x00171412
|
|
// (set) Token: 0x0600420D RID: 16909 RVA: 0x0017221A File Offset: 0x0017141A
|
|
public bool UpdateComponent { get; set; }
|
|
|
|
// Token: 0x170007D8 RID: 2008
|
|
// (get) Token: 0x0600420E RID: 16910 RVA: 0x00172223 File Offset: 0x00171423
|
|
// (set) Token: 0x0600420F RID: 16911 RVA: 0x0017222B File Offset: 0x0017142B
|
|
public bool UpdateMaterial { get; set; }
|
|
|
|
// Token: 0x170007D9 RID: 2009
|
|
// (get) Token: 0x06004210 RID: 16912 RVA: 0x00172234 File Offset: 0x00171434
|
|
// (set) Token: 0x06004211 RID: 16913 RVA: 0x0017223C File Offset: 0x0017143C
|
|
public bool UpdateObject { get; set; }
|
|
|
|
// Token: 0x170007DA RID: 2010
|
|
// (get) Token: 0x06004212 RID: 16914 RVA: 0x00172245 File Offset: 0x00171445
|
|
// (set) Token: 0x06004213 RID: 16915 RVA: 0x0017224D File Offset: 0x0017144D
|
|
public bool Update
|
|
{
|
|
get
|
|
{
|
|
return this.update_;
|
|
}
|
|
set
|
|
{
|
|
this.update_ = value;
|
|
}
|
|
}
|
|
|
|
// Token: 0x06004214 RID: 16916 RVA: 0x00172256 File Offset: 0x00171456
|
|
public Profiler()
|
|
{
|
|
this.startTime_ = DateTime.Now;
|
|
}
|
|
|
|
// Token: 0x06004215 RID: 16917 RVA: 0x0017227F File Offset: 0x0017147F
|
|
private float toMega(uint value)
|
|
{
|
|
return (float)(Math.Round(value * 9.5367431640625E-07 * 1000.0) * 0.001);
|
|
}
|
|
|
|
// Token: 0x06004216 RID: 16918 RVA: 0x001722A8 File Offset: 0x001714A8
|
|
private float toMega(long value)
|
|
{
|
|
return (float)(Math.Round((double)value * 9.5367431640625E-07 * 1000.0) * 0.001);
|
|
}
|
|
|
|
// Token: 0x06004217 RID: 16919 RVA: 0x001722D0 File Offset: 0x001714D0
|
|
private void getObjectUsedMemory<T>(out int count, out float usedMemory) where T : Object
|
|
{
|
|
long num = 0L;
|
|
T[] array = Resources.FindObjectsOfTypeAll<T>();
|
|
count = array.Length;
|
|
foreach (T t in array)
|
|
{
|
|
num += Profiler.GetRuntimeMemorySizeLong(t);
|
|
}
|
|
usedMemory = this.toMega(num);
|
|
}
|
|
|
|
// Token: 0x06004218 RID: 16920 RVA: 0x0017231C File Offset: 0x0017151C
|
|
public void dumpObjectUsedMemory<T>(string path) where T : Object
|
|
{
|
|
StringBuilder stringBuilder = Singleton<SystemConfig>.Instance.getStringBuilder();
|
|
foreach (T t in Resources.FindObjectsOfTypeAll<T>())
|
|
{
|
|
stringBuilder.AppendFormat("{0} {1},{2}\n", t.name, t.GetInstanceID(), Profiler.GetRuntimeMemorySizeLong(t));
|
|
}
|
|
try
|
|
{
|
|
File.WriteAllText(path, stringBuilder.ToString());
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
}
|
|
|
|
// Token: 0x06004219 RID: 16921 RVA: 0x001723AC File Offset: 0x001715AC
|
|
public void update()
|
|
{
|
|
double gameMSecAddD = GameManager.GetGameMSecAddD();
|
|
if ((double)this.minFPS > gameMSecAddD || this.minFPS == 0)
|
|
{
|
|
this.minFPS = (int)gameMSecAddD;
|
|
}
|
|
if ((double)this.maxFPS < gameMSecAddD)
|
|
{
|
|
this.maxFPS = (int)gameMSecAddD;
|
|
}
|
|
this.frameCounter++;
|
|
this.prevTime += gameMSecAddD;
|
|
if (!this.update_)
|
|
{
|
|
return;
|
|
}
|
|
if (this.prevTime >= (double)this.updateInterval_)
|
|
{
|
|
this.updateMemoryUse();
|
|
}
|
|
this.garbageCollect_ = global::System.GC.CollectionCount(0);
|
|
}
|
|
|
|
// Token: 0x0600421A RID: 16922 RVA: 0x00172434 File Offset: 0x00171634
|
|
public void updateMemoryUse()
|
|
{
|
|
this.framesPerSecond_ = this.frameCounter;
|
|
this.frameCounter = 0;
|
|
this.prevTime = 0.0;
|
|
this.minFPS = 0;
|
|
this.maxFPS = 0;
|
|
this.usedHeap_ = this.toMega(Profiler.usedHeapSizeLong);
|
|
this.usedMono_ = this.toMega(Profiler.GetMonoUsedSizeLong());
|
|
this.totalMono_ = this.toMega(Profiler.GetMonoHeapSizeLong());
|
|
this.totalAllocatedMemory_ = this.toMega(Profiler.GetTotalAllocatedMemoryLong());
|
|
this.totalReservedMemory_ = this.toMega(Profiler.GetTotalReservedMemoryLong());
|
|
if (this.UpdateTexture)
|
|
{
|
|
this.getObjectUsedMemory<Texture>(out this.totalTextures_, out this.usedTextureMemory_);
|
|
}
|
|
if (this.UpdateMesh)
|
|
{
|
|
this.getObjectUsedMemory<Mesh>(out this.totalMeshes_, out this.usedMeshMemory_);
|
|
}
|
|
if (this.UpdateGameObject)
|
|
{
|
|
this.getObjectUsedMemory<GameObject>(out this.totalGameObjects_, out this.usedGameObjectMemory_);
|
|
}
|
|
if (this.UpdateComponent)
|
|
{
|
|
this.getObjectUsedMemory<Component>(out this.totalComponents_, out this.usedComponentMemory_);
|
|
}
|
|
if (this.UpdateMaterial)
|
|
{
|
|
this.getObjectUsedMemory<Material>(out this.totalMaterials_, out this.usedMaterialMemory_);
|
|
}
|
|
if (this.UpdateObject)
|
|
{
|
|
this.getObjectUsedMemory<Object>(out this.totalObjects_, out this.usedObjectMemory_);
|
|
}
|
|
}
|
|
|
|
// Token: 0x04004D0E RID: 19726
|
|
public const float DefaultUpdateInterval = 1000f;
|
|
|
|
// Token: 0x04004D15 RID: 19733
|
|
private bool update_;
|
|
|
|
// Token: 0x04004D16 RID: 19734
|
|
private float updateInterval_ = 1000f;
|
|
|
|
// Token: 0x04004D17 RID: 19735
|
|
private float usedHeap_;
|
|
|
|
// Token: 0x04004D18 RID: 19736
|
|
private float usedMono_;
|
|
|
|
// Token: 0x04004D19 RID: 19737
|
|
private float totalMono_;
|
|
|
|
// Token: 0x04004D1A RID: 19738
|
|
private float totalAllocatedMemory_;
|
|
|
|
// Token: 0x04004D1B RID: 19739
|
|
private float totalReservedMemory_;
|
|
|
|
// Token: 0x04004D1C RID: 19740
|
|
private int totalTextures_;
|
|
|
|
// Token: 0x04004D1D RID: 19741
|
|
private int totalMeshes_;
|
|
|
|
// Token: 0x04004D1E RID: 19742
|
|
private float usedTextureMemory_;
|
|
|
|
// Token: 0x04004D1F RID: 19743
|
|
private float usedMeshMemory_;
|
|
|
|
// Token: 0x04004D20 RID: 19744
|
|
private int totalGameObjects_;
|
|
|
|
// Token: 0x04004D21 RID: 19745
|
|
private int totalComponents_;
|
|
|
|
// Token: 0x04004D22 RID: 19746
|
|
private int totalMaterials_;
|
|
|
|
// Token: 0x04004D23 RID: 19747
|
|
private int totalObjects_;
|
|
|
|
// Token: 0x04004D24 RID: 19748
|
|
private float usedGameObjectMemory_;
|
|
|
|
// Token: 0x04004D25 RID: 19749
|
|
private float usedComponentMemory_;
|
|
|
|
// Token: 0x04004D26 RID: 19750
|
|
private float usedMaterialMemory_;
|
|
|
|
// Token: 0x04004D27 RID: 19751
|
|
private float usedObjectMemory_;
|
|
|
|
// Token: 0x04004D28 RID: 19752
|
|
private int framesPerSecond_;
|
|
|
|
// Token: 0x04004D29 RID: 19753
|
|
private DateTime startTime_;
|
|
|
|
// Token: 0x04004D2A RID: 19754
|
|
private int garbageCollect_;
|
|
|
|
// Token: 0x04004D2B RID: 19755
|
|
private int minFPS = 1000;
|
|
|
|
// Token: 0x04004D2C RID: 19756
|
|
private int maxFPS;
|
|
|
|
// Token: 0x04004D2D RID: 19757
|
|
private double prevTime;
|
|
|
|
// Token: 0x04004D2E RID: 19758
|
|
private int frameCounter;
|
|
}
|
|
}
|