Example #1
0
 public static void exit()
 {
     if (DurationStatistics.collectStatistics)
     {
         Console.WriteLine(TextureCache.Instance.statistics);
     }
     RendererExecutor.exit();
     VertexCache.Instance.exit();
     Compiler.exit();
     RuntimeContext.exit();
     Profiler.exit();
     GEProfiler.exit();
     BaseRenderer.exit();
     BasePrimitiveRenderer.exit();
     ExternalGE.exit();
     if (DurationStatistics.collectStatistics && Modules.ThreadManForUserModule.statistics != null && Modules.sceDisplayModule.statistics != null)
     {
         long   totalMillis          = Clock.milliTime();
         long   displayMillis        = Modules.sceDisplayModule.statistics.cumulatedTimeMillis;
         long   idleCpuMillis        = RuntimeContext.idleDuration.CpuDurationMillis;
         long   compilationCpuMillis = Compiler.compileDuration.CpuDurationMillis;
         long   cpuMillis            = Modules.ThreadManForUserModule.statistics.allCpuMillis - compilationCpuMillis - idleCpuMillis;
         long   cpuCycles            = Modules.ThreadManForUserModule.statistics.allCycles;
         double totalSecs            = totalMillis / 1000.0;
         double displaySecs          = displayMillis / 1000.0;
         double cpuSecs = cpuMillis / 1000.0;
         if (totalSecs != 0)
         {
             Console.WriteLine("Total execution time: " + string.Format("{0:F3}", totalSecs) + "s");
             Console.WriteLine("     PSP CPU time: " + string.Format("{0:F3}", cpuSecs) + "s (" + string.Format("{0:F1}", cpuSecs / totalSecs * 100) + "%)");
             Console.WriteLine("     Display time: " + string.Format("{0:F3}", displaySecs) + "s (" + string.Format("{0:F1}", displaySecs / totalSecs * 100) + "%)");
         }
         if (VideoEngine.Statistics != null)
         {
             long videoCalls = VideoEngine.Statistics.numberCalls;
             if (videoCalls != 0)
             {
                 Console.WriteLine("Elapsed time per frame: " + string.Format("{0:F3}", totalSecs / videoCalls) + "s:");
                 Console.WriteLine("    Display time: " + string.Format("{0:F3}", displaySecs / videoCalls));
                 Console.WriteLine("    PSP CPU time: " + string.Format("{0:F3}", cpuSecs / videoCalls) + " (" + (cpuCycles / videoCalls) + " instr)");
             }
             if (totalSecs != 0)
             {
                 Console.WriteLine("Display Speed: " + string.Format("{0:F2}", videoCalls / totalSecs) + " FPS");
             }
         }
         if (cpuSecs != 0)
         {
             Console.WriteLine("PSP CPU Speed: " + string.Format("{0:F2}", cpuCycles / cpuSecs / 1000000.0) + "MHz (" + (long)(cpuCycles / cpuSecs) + " instructions per second)");
         }
     }
     SoundChannel.exit();
 }