You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
2.4 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Diagnostics;
  5. /// <summary>
  6. /// 时间调试器,用来计算程序的运行时间
  7. /// </summary>
  8. namespace Shentun.Utilities
  9. {
  10. public static class TimeDebuger
  11. {
  12. private static DateTime _startTime;
  13. private static DateTime _lastTime;
  14. /// <summary>
  15. /// 计时器启动
  16. /// </summary>
  17. public static void Start()
  18. {
  19. _startTime = System.DateTime.Now;
  20. _lastTime = _startTime;
  21. }
  22. /// <summary>
  23. /// 最近两个时间的间隔
  24. /// </summary>
  25. public static double IntervalTime
  26. {
  27. get
  28. {
  29. if (_lastTime == null)
  30. return 0;
  31. var currentTime = System.DateTime.Now;
  32. TimeSpan ts = currentTime.Subtract(_lastTime);
  33. _lastTime = currentTime;
  34. return ts.TotalMilliseconds;
  35. }
  36. }
  37. /// <summary>
  38. /// 输出运行间隔时间
  39. /// </summary>
  40. /// <param name="name"></param>
  41. public static void IntervalTimeWriteLine(string name)
  42. {
  43. if (_lastTime == null)
  44. return ;
  45. var currentTime = System.DateTime.Now;
  46. TimeSpan ts = currentTime.Subtract(_lastTime);
  47. _lastTime = currentTime;
  48. if (string.IsNullOrEmpty(name))
  49. name = "";
  50. Debug.WriteLine(name + "运行时间:" + ts.TotalMilliseconds.ToString());
  51. }
  52. /// <summary>
  53. /// 从计时器启动到现在的总运行时间
  54. /// </summary>
  55. public static double SumRunTime
  56. {
  57. get
  58. {
  59. var currentTime = System.DateTime.Now;
  60. TimeSpan ts = currentTime.Subtract(_startTime);
  61. return ts.TotalMilliseconds;
  62. }
  63. }
  64. /// <summary>
  65. /// 输出总运行时间
  66. /// </summary>
  67. /// <param name="name"></param>
  68. public static void SumRunTimeWriteLine(string name)
  69. {
  70. var currentTime = System.DateTime.Now;
  71. TimeSpan ts = currentTime.Subtract(_startTime);
  72. if (string.IsNullOrEmpty(name))
  73. name = "";
  74. Debug.WriteLine($"{name}总运行时间:{ts.TotalMilliseconds.ToString()} 毫秒");
  75. }
  76. }
  77. }