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

首頁 > 編程 > C# > 正文

C#代碼性能測試類(簡單實用)

2020-01-24 01:46:32
字體:
來源:轉載
供稿:網友

介紹:

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

 

使用方法:

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; }    }  }}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 屏东县| 舞钢市| 科尔| 客服| 鄂托克前旗| 讷河市| 敖汉旗| 威远县| 启东市| 聂荣县| 嘉荫县| 无锡市| 南宁市| 比如县| 淮安市| 冀州市| 清水县| 芦山县| 大城县| 恩平市| 北宁市| 沐川县| 大丰市| 革吉县| 额尔古纳市| 新蔡县| 务川| 武城县| 宜良县| 扬中市| 仙居县| 布拖县| 兴宁市| 桂平市| 微山县| 府谷县| 克山县| 巢湖市| 南陵县| 建湖县| 土默特左旗|