/// <summary>Measures the time spent executing action.</summary> /// <param name="name">The name.</param> /// <param name="repeat">Number of repetiotions.</param> /// <param name="action">The action.</param> /// <param name="size">The size.</param> public static void Debug(string name, int repeat, Action action, double size = 0) { var timer = new PerformanceTimer(); using (timer.Scope()) { action(); } var time = timer.Elapsed / repeat; Console.WriteLine("{0}: {1:0.0000}ms ({2:0.00}/s)", name, time * 1000, size / time); }
/// <summary>Measures the time spent executing action.</summary> /// <typeparam name="T">Type of result.</typeparam> /// <param name="name">The name.</param> /// <param name="repeat">Number of repetiotions.</param> /// <param name="action">The action.</param> /// <param name="size">The size.</param> /// <returns>Value returned by action.</returns> public static T Debug <T>(string name, int repeat, Func <T> action, double size = 0) { var result = default(T); var timer = new PerformanceTimer(); using (timer.Scope()) { for (int i = 0; i < repeat; i++) { result = action(); } } var time = timer.Elapsed / repeat; Console.WriteLine("{0}: {1:0.0000}ms ({2:0.00}/s)", name, time * 1000, size / time); return(result); }