Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Stopwatch Profiler Test

By: kendfrey on Mar 22nd, 2012  |  syntax: C#  |  size: 1.83 KB  |  views: 162  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #define PROFILE
  2.  
  3. using System;
  4. using System.Diagnostics;
  5. using System.Numerics;
  6.  
  7. namespace profiletest
  8. {
  9.         class Program
  10.         {
  11.                 static void Main(string[] args)
  12.                 {
  13.                         Stopwatch total = Stopwatch.StartNew();
  14. #if PROFILE
  15.                         Stopwatch initn = new Stopwatch();
  16.                         Stopwatch initf = new Stopwatch();
  17.                         Stopwatch loop = new Stopwatch();
  18.                         Stopwatch body = new Stopwatch();
  19.                         initn.Start();
  20. #endif
  21.                         int n = 100;
  22. #if PROFILE
  23.                         initn.Stop();
  24.                         initf.Start();
  25. #endif
  26.                         BigInteger f = 1;
  27. #if PROFILE
  28.                         initf.Stop();
  29.                         loop.Start();
  30. #endif
  31.                         for (int i = n; i > 1; i--)
  32.                         {
  33. #if PROFILE
  34.                                 loop.Stop();
  35.                                 body.Start();
  36. #endif
  37.                                 f *= i;
  38. #if PROFILE
  39.                                 body.Stop();
  40.                                 loop.Start();
  41. #endif
  42.                         }
  43. #if PROFILE
  44.                         loop.Stop();
  45. #endif
  46.                         total.Stop();
  47.                         Console.WriteLine(f);
  48.                         Console.ReadLine();
  49.                         Console.WriteLine("             Line             |  Ticks");
  50.                         Console.WriteLine("------------------------------|----------");
  51.                         Console.WriteLine("                              |");
  52. #if PROFILE
  53.                         Console.WriteLine("int n = 100;                  |{0,10}", initn.ElapsedTicks);
  54.                         Console.WriteLine("BigInteger f = 1;             |{0,10}", initf.ElapsedTicks);
  55.                         Console.WriteLine("for (int i = n; i > 1; i--)   |{0,10}", loop.ElapsedTicks);
  56.                         Console.WriteLine("{                             |");
  57.                         Console.WriteLine("    f *= i;                   |{0,10}", body.ElapsedTicks);
  58.                         Console.WriteLine("}                             |");
  59.                         Console.WriteLine("                              |");
  60. #endif
  61.                         Console.WriteLine("Total time:                   |{0,10}", total.ElapsedTicks);
  62. #if PROFILE
  63.                         Console.WriteLine("Stopwatch overhead:           |{0,10}", total.ElapsedTicks - initn.ElapsedTicks - initf.ElapsedTicks - loop.ElapsedTicks - body.ElapsedTicks);
  64. #endif
  65.                         Console.ReadLine();
  66.                 }
  67.         }
  68. }