计算执行的时间的代码

ExecuteTimeusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace TestProject1.Performance
{
    public static class ExecuteTime
    {
        #region SetOut

        private static TextWriter _out;

        public static TextWriter Out
        {
            get
            {
                if (_out == null)
                {
                    SetOut(Console.Out);
                }
                return _out;
            }
        }

        public static void SetOut(TextWriter newOut)
        {
            if (newOut == null)
            {
                throw new ArgumentNullException("newOut");
            }
            _out = newOut;
        }

        #endregion

        #region Enable

        static bool? _Enable;
        /// <summary>
        /// 是否启用
        /// </summary>
        public static bool Enable
        {
            get
            {
                if (_Enable != null)
                    return _Enable.Value;
                _Enable = false;
#if DEBUG
                _Enable = true;
#endif
                return _Enable.Value;
            }
            set
            {
                _Enable = value;
            }
        }

        #endregion

        #region TabIndex

        static int tabIndex;
        /// <summary>
        /// Tab计数器
        /// </summary>
        internal static int TabIndex
        {
            get
            {
                return tabIndex;
            }
            set
            {
                if (value < 0)
                    tabIndex = 0;
                else
                    tabIndex = value;
            }
        }

        #endregion

        static string ToPreTab(string content)
        {
            for (int i = 0; i < TabIndex; i++)
            {
                content = "\t" + content;
            }
            return content;
        }

        public static void WriteLine(string content)
        {
            Out.WriteLine(TabIndex.ToString() + ToPreTab(content));
        }
    }
}

 

 

 

ExecuteTimeItemusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

namespace TestProject1.Performance
{
    public class ExecuteTimeItem : IDisposable
    {
        Stopwatch sw = new Stopwatch();
        object content;
        internal ExecuteTimeItem(object content)
        {
            ExecuteTime.TabIndex++;
            ExecuteTime.WriteLine(string.Format("开始【{0}】", content));
            this.content = content;
            sw.Start();
        }

        #region IDisposable 成员

        bool disposed = false;
        public void Dispose()
        {
            Dispose(true);
        }
        public void Dispose(bool disposed)
        {
            if (!this.disposed)
            {
                sw.Stop();
                ExecuteTime.WriteLine(string.Format("结束【{0}】用时:{1}毫秒。", content, sw.Elapsed.TotalMilliseconds));
                ExecuteTime.TabIndex--;
                disposed = true;
            }
        }
        #endregion
    }
}

 

 

Test        [TestMethod]
        public void TestMethod1()
        {
            for (int i = 0; i < 10; i++)
            {
                using (new ExecuteTimeItem(i))
                {
                    Thread.Sleep(10);
                    for (int j = 0; j < 10; j++)
                    {
                        using (new ExecuteTimeItem(j))
                        {
                            Thread.Sleep(20);
                        }
                    }
                }
            }
        }

 

 

结果1	开始【0】
2		开始【0】
2		结束【0】用时:20.4351毫秒。
2		开始【1】
2		结束【1】用时:19.4521毫秒。
2		开始【2】
2		结束【2】用时:19.9381毫秒。
2		开始【3】
2		结束【3】用时:19.9483毫秒。
2		开始【4】
2		结束【4】用时:19.9731毫秒。
2		开始【5】
2		结束【5】用时:19.9782毫秒。
2		开始【6】
2		结束【6】用时:20.0924毫秒。
2		开始【7】
2		结束【7】用时:19.8172毫秒。
2		开始【8】
2		结束【8】用时:19.9806毫秒。
2		开始【9】
2		结束【9】用时:19.9507毫秒。
1	结束【0】用时:210.6243毫秒。
1	开始【1】
2		开始【0】
2		结束【0】用时:19.9719毫秒。
2		开始【1】
2		结束【1】用时:20.0503毫秒。
2		开始【2】
2		结束【2】用时:20.3831毫秒。
2		开始【3】
2		结束【3】用时:19.4919毫秒。
2		开始【4】
2		结束【4】用时:20.068毫秒。
2		开始【5】
2		结束【5】用时:19.8372毫秒。
2		开始【6】
2		结束【6】用时:19.9735毫秒。
2		开始【7】
2		结束【7】用时:19.9735毫秒。
2		开始【8】
2		结束【8】用时:19.9609毫秒。
2		开始【9】
2		结束【9】用时:19.9688毫秒。
1	结束【1】用时:209.9757毫秒。
1	开始【2】
2		开始【0】
2		结束【0】用时:19.9991毫秒。
2		开始【1】
2		结束【1】用时:19.9814毫秒。
2		开始【2】
2		结束【2】用时:19.977毫秒。
2		开始【3】
2		结束【3】用时:19.9444毫秒。
2		开始【4】
2		结束【4】用时:19.9767毫秒。
2		开始【5】
2		结束【5】用时:19.9676毫秒。
2		开始【6】
2		结束【6】用时:20.3405毫秒。
2		开始【7】
2		结束【7】用时:19.6065毫秒。
2		开始【8】
2		结束【8】用时:19.9841毫秒。
2		开始【9】
2		结束【9】用时:19.927毫秒。
1	结束【2】用时:210.0064毫秒。
1	开始【3】
2		开始【0】
2		结束【0】用时:19.9767毫秒。
2		开始【1】
2		结束【1】用时:19.9881毫秒。
2		开始【2】
2		结束【2】用时:19.9558毫秒。
2		开始【3】
2		结束【3】用时:19.9684毫秒。
2		开始【4】
2		结束【4】用时:20.2941毫秒。
2		开始【5】
2		结束【5】用时:19.6356毫秒。
2		开始【6】
2		结束【6】用时:19.9668毫秒。
2		开始【7】
2		结束【7】用时:19.9877毫秒。
2		开始【8】
2		结束【8】用时:19.9735毫秒。
2		开始【9】
2		结束【9】用时:19.9924毫秒。
1	结束【3】用时:210.0265毫秒。
1	开始【4】
2		开始【0】
2		结束【0】用时:20.0034毫秒。
2		开始【1】
2		结束【1】用时:19.9928毫秒。
2		开始【2】
2		结束【2】用时:19.9463毫秒。
2		开始【3】
2		结束【3】用时:19.9656毫秒。
2		开始【4】
2		结束【4】用时:19.9664毫秒。
2		开始【5】
2		结束【5】用时:19.9782毫秒。
2		开始【6】
2		结束【6】用时:19.9684毫秒。
2		开始【7】
2		结束【7】用时:19.964毫秒。
2		开始【8】
2		结束【8】用时:20.0117毫秒。
2		开始【9】
2		结束【9】用时:19.9227毫秒。
1	结束【4】用时:209.9635毫秒。
1	开始【5】
2		开始【0】
2		结束【0】用时:19.9979毫秒。
2		开始【1】
2		结束【1】用时:20.0231毫秒。
2		开始【2】
2		结束【2】用时:19.9353毫秒。
2		开始【3】
2		结束【3】用时:19.9495毫秒。
2		开始【4】
2		结束【4】用时:19.9688毫秒。
2		开始【5】
2		结束【5】用时:20.1204毫秒。
2		开始【6】
2		结束【6】用时:19.8148毫秒。
2		开始【7】
2		结束【7】用时:19.9924毫秒。
2		开始【8】
2		结束【8】用时:19.9621毫秒。
2		开始【9】
2		结束【9】用时:19.9526毫秒。
1	结束【5】用时:210.006毫秒。
1	开始【6】
2		开始【0】
2		结束【0】用时:19.9798毫秒。
2		开始【1】
2		结束【1】用时:19.9613毫秒。
2		开始【2】
2		结束【2】用时:19.9774毫秒。
2		开始【3】
2		结束【3】用时:20.0255毫秒。
2		开始【4】
2		结束【4】用时:19.8664毫秒。
2		开始【5】
2		结束【5】用时:19.9794毫秒。
2		开始【6】
2		结束【6】用时:19.9495毫秒。
2		开始【7】
2		结束【7】用时:20.0361毫秒。
2		开始【8】
2		结束【8】用时:19.914毫秒。
2		开始【9】
2		结束【9】用时:20.3673毫秒。
1	结束【6】用时:210.4049毫秒。
1	开始【7】
2		开始【0】
2		结束【0】用时:19.9794毫秒。
2		开始【1】
2		结束【1】用时:19.9774毫秒。
2		开始【2】
2		结束【2】用时:19.9778毫秒。
2		开始【3】
2		结束【3】用时:19.9719毫秒。
2		开始【4】
2		结束【4】用时:19.9676毫秒。
2		开始【5】
2		结束【5】用时:20.0341毫秒。
2		开始【6】
2		结束【6】用时:19.5978毫秒。
2		开始【7】
2		结束【7】用时:19.979毫秒。
2		开始【8】
2		结束【8】用时:19.9487毫秒。
2		开始【9】
2		结束【9】用时:23.1245毫秒。
1	结束【7】用时:212.7541毫秒。
1	开始【8】
2		开始【0】
2		结束【0】用时:19.9983毫秒。
2		开始【1】
2		结束【1】用时:19.9755毫秒。
2		开始【2】
2		结束【2】用时:19.9747毫秒。
2		开始【3】
2		结束【3】用时:19.9936毫秒。
2		开始【4】
2		结束【4】用时:19.9451毫秒。
2		开始【5】
2		结束【5】用时:19.9893毫秒。
2		开始【6】
2		结束【6】用时:19.9526毫秒。
2		开始【7】
2		结束【7】用时:19.8892毫秒。
2		开始【8】
2		结束【8】用时:19.9723毫秒。
2		开始【9】
2		结束【9】用时:19.9743毫秒。
1	结束【8】用时:209.8386毫秒。
1	开始【9】
2		开始【0】
2		结束【0】用时:19.2914毫秒。
2		开始【1】
2		结束【1】用时:19.9704毫秒。
2		开始【2】
2		结束【2】用时:19.9613毫秒。
2		开始【3】
2		结束【3】用时:19.9841毫秒。
2		开始【4】
2		结束【4】用时:20.0731毫秒。
2		开始【5】
2		结束【5】用时:19.8557毫秒。
2		开始【6】
2		结束【6】用时:19.9668毫秒。
2		开始【7】
2		结束【7】用时:19.9546毫秒。
2		开始【8】
2		结束【8】用时:20.0338毫秒。
2		开始【9】
2		结束【9】用时:19.9113毫秒。
1	结束【9】用时:210.0209毫秒。

转载于:https://www.cnblogs.com/rock_chen/archive/2010/08/26/1809059.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值