Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }