Files
Assembly-CSharp/Assembly-CSharp/Mai2/Profiler.cs
2026-06-12 12:58:31 +08:00

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;
}
}