国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

性能測試類,讓你寫法代碼養成經常測試的好習慣 -ASP.NET C#

2019-11-17 02:08:11
字體:
來源:轉載
供稿:網友

性能測試類,讓你寫法代碼養成經常測試的好習慣 -asp.net C#

介紹:

可以很方便的在代碼里循環執行 需要測試的函數 自動統計出執行時間,支持多線程。

使用方法:

            PerformanceTest p = new PerformanceTest();            p.SetCount(10);//循環次數(默認:1)            p.SetIsMultithread(true);//是否啟動多線程測試 (默認:false)            p.Execute(            i =>            {                //需要測試的代碼                Response.Write(i+"<br>");                System.Threading.Thread.Sleep(1000);            },            message =>            {                //輸出總共運行時間                Response.Write(message);   //總共執行時間:1.02206秒                         }            );

  

源碼

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace SyntacticSugar{    /// <summary>    /// ** 描述:程序性能測試類    /// ** 創始時間:2015-5-30    /// ** 修改時間:-    /// ** 修改人:sunkaixuan    /// ** 使用說明:tml    /// </summary>    public class PerformanceTest    {        PRivate DateTime BeginTime;        private DateTime EndTime;        private ParamsModel Params;        /// <summary>        ///設置執行次數(默認:1)        /// </summary>        public void SetCount(int count)        {            Params.RunCount = count;        }        /// <summary>        /// 設置線程模式(默認:false)        /// </summary>        /// <param name="isMul">true為多線程</param>        public void SetIsMultithread(bool isMul)        {            Params.IsMultithread = isMul;        }        /// <summary>        /// 構造函數        /// </summary>        public PerformanceTest()        {            Params = new ParamsModel()            {                RunCount = 1            };        }        /// <summary>        /// 執行函數        /// </summary>        /// <param name="action"></param>        public void Execute(Action<int> action, Action<string> rollBack)        {            List<Thread> arr = new List<Thread>();            BeginTime = DateTime.Now;            for (int i = 0; i < Params.RunCount; i++)            {                if (Params.IsMultithread)                {                    var thread = new Thread(new System.Threading.ThreadStart(() =>                    {                        action(i);                    }));                    thread.Start();                    arr.Add(thread);                }                else                {                    action(i);                }            }            if (Params.IsMultithread)            {                foreach (Thread t in arr)                {                    while (t.IsAlive)                    {                        Thread.Sleep(10);                    }                }            }            rollBack(GetResult());        }        public string GetResult()        {            EndTime = DateTime.Now;            string totalTime = ((EndTime - BeginTime).TotalMilliseconds / 1000.0).ToString("n5");            string reval = string.Format("總共執行時間:{0}秒", totalTime);            Console.Write(reval);            return reval;        }        private class ParamsModel        {            public int RunCount { get; set; }            public bool IsMultithread { get; set; }        }    }}

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥宁县| 嘉禾县| 潞西市| 康平县| 革吉县| 日喀则市| 新乐市| 大姚县| 邵武市| 吉林市| 平凉市| 霍林郭勒市| 龙海市| 仁寿县| 汪清县| 泰顺县| 茂名市| 墨脱县| 米泉市| 西宁市| 塔城市| 名山县| 福州市| 弋阳县| 松江区| 丰原市| 湘乡市| 海安县| 贵州省| 当雄县| 涞水县| 双峰县| 灵石县| 兰考县| 武功县| 阿拉善盟| 嵊州市| 英吉沙县| 永州市| 涞源县| 梧州市|