最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#代碼性能測(cè)試類(簡(jiǎn)單實(shí)用)

 更新時(shí)間:2015年06月08日 09:52:39   投稿:junjie  
這篇文章主要介紹了C#代碼性能測(cè)試類(簡(jiǎn)單實(shí)用),本文直接給出實(shí)現(xiàn)代碼和使用示例,需要的朋友可以參考下

介紹:

可以很方便的在代碼里循環(huán)執(zhí)行 需要測(cè)試的函數(shù)  自動(dòng)統(tǒng)計(jì)出執(zhí)行時(shí)間,支持多線程。

 

使用方法:

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

源碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
 
namespace SyntacticSugar
{
  /// <summary>
  /// ** 描述:程序性能測(cè)試類
  /// ** 創(chuàng)始時(shí)間:2015-5-30
  /// ** 修改時(shí)間:-
  /// ** 修改人:sunkaixuan
  /// ** 使用說(shuō)明:tml
  /// </summary>
  public class PerformanceTest
  {
    private DateTime BeginTime;
    private DateTime EndTime;
    private ParamsModel Params;
 
    /// <summary>
    ///設(shè)置執(zhí)行次數(shù)(默認(rèn):1)
    /// </summary>
    public void SetCount(int count)
    {
      Params.RunCount = count;
    }
    /// <summary>
    /// 設(shè)置線程模式(默認(rèn):false)
    /// </summary>
    /// <param name="isMul">true為多線程</param>
    public void SetIsMultithread(bool isMul)
    {
      Params.IsMultithread = isMul;
    }
 
    /// <summary>
    /// 構(gòu)造函數(shù)
    /// </summary>
    public PerformanceTest()
    {
      Params = new ParamsModel()
      {
        RunCount = 1
      };
    }
 
    /// <summary>
    /// 執(zhí)行函數(shù)
    /// </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("總共執(zhí)行時(shí)間:{0}秒", totalTime);
      Console.Write(reval);
      return reval;
    }
 
    private class ParamsModel
    {
      public int RunCount { get; set; }
      public bool IsMultithread { get; set; }
    }
  }
}

相關(guān)文章

  • winform 實(shí)現(xiàn)選擇文件和選擇文件夾對(duì)話框的簡(jiǎn)單實(shí)例

    winform 實(shí)現(xiàn)選擇文件和選擇文件夾對(duì)話框的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇winform 實(shí)現(xiàn)選擇文件和選擇文件夾對(duì)話框的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • C#中txt數(shù)據(jù)寫入的幾種常見(jiàn)方法

    C#中txt數(shù)據(jù)寫入的幾種常見(jiàn)方法

    這篇文章主要給大家介紹了關(guān)于C#中txt數(shù)據(jù)寫入的幾種常見(jiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • C#實(shí)現(xiàn)并查集的使用示例

    C#實(shí)現(xiàn)并查集的使用示例

    并查集是一種用于處理一些不相交集合的合并及查詢問(wèn)題的數(shù)據(jù)結(jié)構(gòu),具有高效、簡(jiǎn)潔、易用的特點(diǎn),本文主要介紹了C#實(shí)現(xiàn)并查集的使用示例,感興趣的可以了解一下
    2023-11-11
  • C# winform編程中響應(yīng)回車鍵的實(shí)現(xiàn)代碼

    C# winform編程中響應(yīng)回車鍵的實(shí)現(xiàn)代碼

    這篇文章主要介紹了C# winform編程中響應(yīng)回車鍵的實(shí)現(xiàn)代碼,既在窗口上響應(yīng)回車鍵事件的方法,需要的朋友可以參考下
    2014-08-08
  • C#封裝一個(gè)快速讀取寫入操作excel的工具類

    C#封裝一個(gè)快速讀取寫入操作excel的工具類

    這篇文章主要為大家詳細(xì)介紹了C#如何封裝一個(gè)快速讀取寫入操作excel的工具類,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • C#去掉字符串中所有匹配的字符String.Replace方法

    C#去掉字符串中所有匹配的字符String.Replace方法

    在C#中,如果你想要去掉字符串中所有匹配的字符,你可以使用String.Replace方法,本文主要介紹了C#去掉字符串中所有匹配的字符String.Replace方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • 詳解DataGridView控件的數(shù)據(jù)綁定

    詳解DataGridView控件的數(shù)據(jù)綁定

    本文詳細(xì)講解了DataGridView控件的數(shù)據(jù)綁定,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • C#中利用Lotus notes公共郵箱發(fā)送郵件的方法

    C#中利用Lotus notes公共郵箱發(fā)送郵件的方法

    這篇文章主要給大家介紹了關(guān)于C#中利用Lotus notes公共郵箱發(fā)送郵件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2018-02-02
  • C# 設(shè)置防火墻的創(chuàng)建規(guī)則

    C# 設(shè)置防火墻的創(chuàng)建規(guī)則

    這篇文章主要介紹了C# 設(shè)置防火墻的創(chuàng)建規(guī)則,幫助大家更好的利用c#操作防火墻,感興趣的朋友可以了解下
    2020-11-11
  • C#獲取局域網(wǎng)MAC地址的簡(jiǎn)單實(shí)例

    C#獲取局域網(wǎng)MAC地址的簡(jiǎn)單實(shí)例

    這篇文章主要介紹了C#獲取局域網(wǎng)MAC地址的簡(jiǎn)單實(shí)例,有需要的朋友可以參考一下
    2013-11-11

最新評(píng)論

大英县| 太原市| 陇川县| 景谷| 习水县| 绍兴市| 霍城县| 封丘县| 贡嘎县| 大理市| 凤城市| 耿马| 石门县| 育儿| 太康县| 城口县| 莲花县| 长宁县| 龙游县| 荆门市| 永胜县| 招远市| 乌什县| 东乡族自治县| 东莞市| 灵山县| 鹰潭市| 永和县| 西吉县| 万荣县| 新乡市| 惠东县| 榆林市| 大方县| 韶关市| 团风县| 台南县| 浙江省| 宜宾市| 韶山市| 孙吴县|