自定义一个统计代码执行时间的类CalcTiming,考虑了:
在统计执行过程中,不允许有垃圾回收。即在统计代码执行时间之前,就让GC完成垃圾回收。
确保统计的是当前进程中代码的执行时间。
编写代码如下:
public class CalcTiming
{
TimeSpan startTime;
private TimeSpan endTime;
TimeSpan duration;
public CalcTiming()
{
startTime = new TimeSpan(0);
duration = new TimeSpan(0);
} public void StartTime()
{ //强制对所有代进行垃圾回收
GC.Collect(); //挂起线程,终结器线程清空该队列为止
GC.WaitForPendingFinalizers(); //用户运行代码的起始时间
startTime = Process.GetCurrentProcess().UserProcessorTime;
} //统计的代码执行完毕的时间
public void StopTime()
{
endTime = Process.GetCurrentProcess().UserProcessorTime;
duration = endTime.Subtract(startTime);
} //返回统计的代码执行消耗的时间
public TimeSpan Result()
{ return duration;
}
}运用以上CalcTiming类,统计显示数组的消耗时间:
class Program
{
static void Main(string[] args)
{ int[] nums = new int[100000];
BuildArray(nums);
CalcTiming calcTime= new CalcTiming();
calcTime.StartTime();
DisplayNums(nums);
calcTime.StopTime();
Console.WriteLine(string.Format("共用时间:{0} ms",calcTime.Result().TotalMilliseconds));
Console.Read();
} static void BuildArray(int[] arr)
{ for (int i = 0; i < 100000; i++)
arr[i] = 1;
} static void DisplayNums(int[] arr)
{ for (int i = 0; i <= arr.GetUpperBound(0); i++)
Console.Write(arr[i] + " ");
}
} 总结,在接下来用C#描述所有数据结构,统计消耗的时间时,采用CalcTiming对象。
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
