예제 #1
0
        private void SendMemStats()
        {
            if (!Debug.isDebugBuild || this.memObservers.Count == 0)
            {
                return;
            }
            uint monoHeapSize       = Profiler.GetMonoHeapSize();
            uint monoUsedSize       = Profiler.GetMonoUsedSize();
            uint runtimeMemorySize  = this.GetRuntimeMemorySize <Texture>();
            uint runtimeMemorySize2 = this.GetRuntimeMemorySize <Mesh>();
            uint runtimeMemorySize3 = this.GetRuntimeMemorySize <AudioClip>();
            uint runtimeMemorySize4 = this.GetRuntimeMemorySize <AnimationClip>();
            uint runtimeMemorySize5 = this.GetRuntimeMemorySize <Material>();
            long memory             = this.CaptureDeviceMemUsage();

            this.miterMem.Init(this.memObservers);
            while (this.miterMem.Active())
            {
                IPerformanceObserver performanceObserver = this.memObservers[this.miterMem.Index];
                performanceObserver.OnPerformanceMemRsvd(monoHeapSize);
                performanceObserver.OnPerformanceMemUsed(monoUsedSize);
                performanceObserver.OnPerformanceMemTexture(runtimeMemorySize);
                performanceObserver.OnPerformanceMemMesh(runtimeMemorySize2);
                performanceObserver.OnPerformanceMemAudio(runtimeMemorySize3);
                performanceObserver.OnPerformanceMemAnimation(runtimeMemorySize4);
                performanceObserver.OnPerformanceMemMaterials(runtimeMemorySize5);
                performanceObserver.OnPerformanceDeviceMemUsage(memory);
                this.miterMem.Next();
            }
            this.miterMem.Reset();
        }
예제 #2
0
 private void SendFPeak(uint fpeak)
 {
     this.miterFPS.Init(this.fpsObservers);
     while (this.miterFPS.Active())
     {
         IPerformanceObserver performanceObserver = this.fpsObservers[this.miterFPS.Index];
         performanceObserver.OnPerformanceFPeak(fpeak);
         this.miterFPS.Next();
     }
     this.miterFPS.Reset();
 }
예제 #3
0
 public void RegisterFPSObserver(IPerformanceObserver observer)
 {
     if (this.fpsObservers.IndexOf(observer) < 0)
     {
         if (this.fpsObservers.Count == 0)
         {
             this.Enable(true);
         }
         this.fpsObservers.Add(observer);
         observer.OnPerformanceFPS(0f);
         observer.OnPerformanceFPeak(0u);
     }
 }
예제 #4
0
        public void UnregisterFPSObserver(IPerformanceObserver observer)
        {
            int num = this.fpsObservers.IndexOf(observer);

            if (num >= 0)
            {
                this.fpsObservers.RemoveAt(num);
                this.miterFPS.OnRemove(num);
            }
            if (this.fpsObservers.Count + this.memObservers.Count == 0)
            {
                this.Enable(false);
            }
        }
예제 #5
0
 public void RegisterMemObserver(IPerformanceObserver observer)
 {
     if (this.memObservers.IndexOf(observer) < 0)
     {
         if (this.memObservers.Count == 0)
         {
             this.Enable(true);
         }
         this.memObservers.Add(observer);
         observer.OnPerformanceMemRsvd(0u);
         observer.OnPerformanceMemUsed(0u);
         observer.OnPerformanceMemTexture(0u);
         observer.OnPerformanceMemMesh(0u);
         observer.OnPerformanceMemAudio(0u);
         observer.OnPerformanceMemAnimation(0u);
         observer.OnPerformanceMemMaterials(0u);
         observer.OnPerformanceDeviceMemUsage(0L);
     }
 }