国产探花免费观看_亚洲丰满少妇自慰呻吟_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; }        }    }}

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河南省| 靖安县| 安西县| 蒲城县| 九江县| 资溪县| 尼木县| 广德县| 大同县| 景泰县| 沁源县| 酉阳| 马公市| 高阳县| 江源县| 马山县| 博野县| 稷山县| 赞皇县| 红河县| 新乡市| 平山县| 长海县| 轮台县| 克山县| 鹤岗市| 江都市| 玛纳斯县| 织金县| 邢台县| 长阳| 霸州市| 邻水| 商丘市| 梧州市| 连平县| 教育| 霍林郭勒市| 天柱县| 夹江县| 象州县|