using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 时间测试 { class Program { static void Main(string[] args) { int[] numbs = new int[100000]; BuildArray(numbs); TimeSpan duration; DisplayNumbs(numbs); DisplayNumbs(numbs); DisplayNumbs(numbs); duration = Process.GetCurrentProcess().TotalProcessorTime; Console.WriteLine("Time:" + duration.TotalSeconds); } public static void BuildArray(int[] numbs) { for (int i = 0; i < numbs.Length; i++) { numbs[i] = i; } } public static void DisplayNumbs(int[] numbs) { for (int i = 0; i < numbs.Length; i++) { Console.Write(numbs[i] + " "); } } } }
-------------------封装的Timing类----------------------------------------------------------------------------------------------------------------------
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Timing类 { class Program { static void Main(string[] args) { int[] numbs = new int[100000]; BuildArray(numbs); Timing test = new Timing(); test.StartTime(); DisplayNumbs(numbs); test.StopTime(); Console.WriteLine("Time:" + test.Result()); } public static void BuildArray(int[] numbs) { for (int i = 0; i < numbs.Length; i++) { numbs[i] = i; } } public static void DisplayNumbs(int[] numbs) { for (int i = 0; i < numbs.Length; i++) { Console.Write(numbs[i] + " "); } } } /// <summary> /// 时间测试类 /// </summary> public class Timing { /// <summary> /// 记录开始时间 /// </summary> private TimeSpan startingTime; /// <summary> /// 记录方法的用时 /// </summary> private TimeSpan duration; /// <summary> /// 初始化 /// </summary> public Timing() { startingTime = new TimeSpan(0); duration = new TimeSpan(0); } /// <summary> /// 结束计时 /// </summary> public void StopTime() { duration = Process.GetCurrentProcess().Threads[0] .UserProcessorTime.Subtract(startingTime); } /// <summary> /// 开始计时 /// </summary> public void StartTime() { GC.Collect(); GC.WaitForPendingFinalizers(); startingTime = Process.GetCurrentProcess().Threads[0].UserProcessorTime; } /// <summary> /// 获取结果 /// </summary> /// <returns></returns> public TimeSpan Result() { return duration; } } }