計算執行的時間的代碼

來源:互聯網
上載者:User
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毫秒。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.