用C#描述数据结构1:统计代码执行时间对象的代码详解


本文摘自PHP中文网,作者黄舟,侵删。

 自定义一个统计代码执行时间的类CalcTiming,考虑了:

  • 在统计执行过程中,不允许有垃圾回收。即在统计代码执行时间之前,就让GC完成垃圾回收。

  • 确保统计的是当前进程中代码的执行时间。

    编写代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

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类,统计显示数组的消耗时间:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

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对象。
 

以上就是用C#描述数据结构1:统计代码执行时间对象的代码详解的详细内容!

相关阅读 >>

C#中反射是什么?

C# 2.0 specification(一)简介

.net是否真的被国内市场嫌弃?

C#开发实例-订制屏幕截图工具(三)托盘图标及菜单实现的图文介绍

详细介绍C#实现的md5加密功能与用法示例

详解C#使用xsd文件验证xml格式是否正确的实现方法

详解C#常见应用函数的实例总结

实现C#中图片.byte[]和base64string的转换方法的详解

C#中如何取绝对值函数的方法详解

C#基础入门-简单了解注释

更多相关阅读请进入《C#》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...