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

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

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

介紹:

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

 

使用方法:

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

源碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
 
namespace SyntacticSugar
{
  /// <summary>
  /// ** 描述:程序性能測試類
  /// ** 創(chuàng)始時間:2015-5-30
  /// ** 修改時間:-
  /// ** 修改人:sunkaixuan
  /// ** 使用說明: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í)行時間:{0}秒", totalTime);
      Console.Write(reval);
      return reval;
    }
 
    private class ParamsModel
    {
      public int RunCount { get; set; }
      public bool IsMultithread { get; set; }
    }
  }
}

相關(guān)文章

  • winform 實現(xiàn)選擇文件和選擇文件夾對話框的簡單實例

    winform 實現(xiàn)選擇文件和選擇文件夾對話框的簡單實例

    下面小編就為大家?guī)硪黄獁inform 實現(xiàn)選擇文件和選擇文件夾對話框的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C#中txt數(shù)據(jù)寫入的幾種常見方法

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

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

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

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

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

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

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

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

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

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

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

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

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

    這篇文章主要給大家介紹了關(guān)于C#中利用Lotus notes公共郵箱發(fā)送郵件的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    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地址的簡單實例

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

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

最新評論

平果县| 通州区| 商洛市| 西充县| 吉水县| 五大连池市| 马龙县| 灵璧县| 丰镇市| 九龙城区| 大石桥市| 棋牌| 浦县| 穆棱市| 菏泽市| 子洲县| 东台市| 海盐县| 辛集市| 响水县| 罗田县| 恭城| 兴海县| 静海县| 垣曲县| 民勤县| 凭祥市| 凤庆县| 无锡市| 余干县| 开原市| 百色市| 静乐县| 宜黄县| 德格县| 洛浦县| 浮山县| 平塘县| 龙游县| 彭阳县| 丹凤县|