Exemple #1
0
        private void do_timed(stopwatchdelegate func, int num_iterations)
        {
            // initialize the times to 0

            long time_NeverUseThreads  = 0;
            long time_AlwaysUseThreads = 0;
            long time_MaybeUseThreads  = 0;

            // run the tests
            for (int i = 0; i < num_iterations; i++)
            {
                multicore.Mode         = MultiCoreMode.AlwaysUseThreads;
                time_AlwaysUseThreads += timeit(func);

                multicore.Mode        = MultiCoreMode.NeverUseThreads;
                time_NeverUseThreads += timeit(func);

                multicore.Mode        = MultiCoreMode.UseThreadsIfMultipleProcessorsPresent;
                time_MaybeUseThreads += timeit(func);
            }

            Console.WriteLine("ProcessorCount:   {0}", System.Environment.ProcessorCount);

            Console.WriteLine("NeverUseThreads:  {0}", time_NeverUseThreads);
            Console.WriteLine("AlwaysUseThreads: {0}", time_AlwaysUseThreads);
            Console.WriteLine("MaybeUseThreads:  {0}", time_MaybeUseThreads);

            Console.WriteLine("Improvement:      {0}%", (time_NeverUseThreads - time_AlwaysUseThreads) * 100 / time_NeverUseThreads);
        }
Exemple #2
0
        private static long timeit(stopwatchdelegate func)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            func();
            sw.Stop();
            return(sw.ElapsedMilliseconds);
        }