icallperf.cs 705 B

12345678910111213141516171819202122232425262728
  1. // This is a benchmark to be run w/ and w/o the change
  2. // to compute PerformanceCounter ("Mono Threadpool", "Work Items Added").
  3. using System;
  4. using System.Threading;
  5. using System.Diagnostics;
  6. class Program
  7. {
  8. static void Main ()
  9. {
  10. var workItems = new PerformanceCounter ("Mono Threadpool", "Work Items Added");
  11. var t1 = DateTime.Now;
  12. int N = 100 * 100 * 100;
  13. for (var i = 0; i < N; i++)
  14. ThreadPool.QueueUserWorkItem (_ => {});
  15. var t2 = DateTime.Now;
  16. var d0 = t2 - t1;
  17. var d1 = d0.TotalMilliseconds;
  18. Console.WriteLine("{0} items in {1}ms, {2}ms per queue", N, d1, d1 / (double)N);
  19. var workItems0 = workItems.NextValue();
  20. Console.WriteLine("workItems0:{0}", workItems0);
  21. }
  22. }