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()); }
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; }
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(); }
public static void EndFastProfile(int tag) { AstarProfiler.ProfilePoint profilePoint = AstarProfiler.fastProfiles[tag]; profilePoint.totalCalls++; profilePoint.watch.Stop(); }