自定义一个统计代码执行时间的类calctiming,考虑了:
在统计执行过程中,不允许有垃圾回收。即在统计代码执行时间之前,就让GC完成垃圾回收。
-
确保统计的是当前进程中代码的执行时间。
编写代码如下:
GNCMS可视化拖拽公司网站模板1.0.0下载高端网络建设公司设计类网站模板 IT互联网移动建站类网站源码(带手机版数据同步)本套模板采用现在非常流行的全屏自适应布局设计,且栏目列表以简洁,非常时尚大气。后台支持可视拖拽编辑。 模板特点:1、手工书写DIV+CSS、代码精简无冗余。2、自适应结构,全球先进技术,高端视觉体验。3、SEO框架布局,栏目及文章页均可独立设置标题/关键词/描述。4、后台直接修改联系方式、传真、邮箱、地址等,修改更加方
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对象。









