示例#1
0
        public static void PrintFastResults()
        {
            if (AstarProfiler.fastProfiles == null)
            {
                return;
            }
            for (int i = 0; i < 1000; i++)
            {
            }
            double        num           = AstarProfiler.fastProfiles[AstarProfiler.fastProfiles.Length - 2].watch.Elapsed.TotalMilliseconds / 1000.0;
            TimeSpan      timeSpan      = DateTime.UtcNow - AstarProfiler.startTime;
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("============================\n\t\t\t\tProfile results:\n============================\n");
            stringBuilder.Append("Name\t\t|\tTotal Time\t|\tTotal Calls\t|\tAvg/Call\t|\tBytes");
            for (int j = 0; j < AstarProfiler.fastProfiles.Length; j++)
            {
                string text = AstarProfiler.fastProfileNames[j];
                AstarProfiler.ProfilePoint profilePoint = AstarProfiler.fastProfiles[j];
                int    totalCalls = profilePoint.totalCalls;
                double num2       = profilePoint.watch.Elapsed.TotalMilliseconds - num * (double)totalCalls;
                if (totalCalls >= 1)
                {
                    stringBuilder.Append("\n").Append(text.PadLeft(10)).Append("|   ");
                    stringBuilder.Append(num2.ToString("0.0 ").PadLeft(10)).Append(profilePoint.watch.Elapsed.TotalMilliseconds.ToString("(0.0)").PadLeft(10)).Append("|   ");
                    stringBuilder.Append(totalCalls.ToString().PadLeft(10)).Append("|   ");
                    stringBuilder.Append((num2 / (double)totalCalls).ToString("0.000").PadLeft(10));
                }
            }
            stringBuilder.Append("\n\n============================\n\t\tTotal runtime: ");
            stringBuilder.Append(timeSpan.TotalSeconds.ToString("F3"));
            stringBuilder.Append(" seconds\n============================");
            Debug.Log(stringBuilder.ToString());
        }
示例#2
0
 public static void EndProfile(string tag)
 {
     if (!AstarProfiler.profiles.ContainsKey(tag))
     {
         Debug.LogError("Can only end profiling for a tag which has already been started (tag was " + tag + ")");
         return;
     }
     AstarProfiler.ProfilePoint profilePoint = AstarProfiler.profiles[tag];
     profilePoint.totalCalls++;
     profilePoint.watch.Stop();
     profilePoint.totalBytes += GC.GetTotalMemory(false) - profilePoint.tmpBytes;
 }
示例#3
0
 public static void StartProfile(string tag)
 {
     AstarProfiler.ProfilePoint profilePoint;
     AstarProfiler.profiles.TryGetValue(tag, out profilePoint);
     if (profilePoint == null)
     {
         profilePoint = new AstarProfiler.ProfilePoint();
         AstarProfiler.profiles[tag] = profilePoint;
     }
     profilePoint.tmpBytes = GC.GetTotalMemory(false);
     profilePoint.watch.Start();
 }
示例#4
0
 public static void EndFastProfile(int tag)
 {
     AstarProfiler.ProfilePoint profilePoint = AstarProfiler.fastProfiles[tag];
     profilePoint.totalCalls++;
     profilePoint.watch.Stop();
 }
示例#5
0
 public static void StartProfile(string tag)
 {
     AstarProfiler.ProfilePoint profilePoint;
     AstarProfiler.profiles.TryGetValue(tag, out profilePoint);
     if (profilePoint == null)
     {
         profilePoint = new AstarProfiler.ProfilePoint();
         AstarProfiler.profiles[tag] = profilePoint;
     }
     profilePoint.tmpBytes = GC.GetTotalMemory(false);
     profilePoint.watch.Start();
 }