欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)文章

  • C# lock線程鎖的用法

    C# lock線程鎖的用法

    在C#中,鎖lock是一種同步機(jī)制,允許在同一時間只允許一個線程訪問指定的代碼或區(qū)域,本文主要介紹了C# lock線程鎖的用法,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • C#使用NPOI上傳excel

    C#使用NPOI上傳excel

    這篇文章主要為大家詳細(xì)介紹了C#使用NPOI上傳excel的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • C#實現(xiàn)程序開機(jī)啟動的方法

    C#實現(xiàn)程序開機(jī)啟動的方法

    這篇文章主要介紹了C#實現(xiàn)程序開機(jī)啟動的方法,涉及C#針對應(yīng)用程序及注冊表的相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • C#繪制餅狀圖和柱狀圖的方法

    C#繪制餅狀圖和柱狀圖的方法

    這篇文章主要為大家詳細(xì)介紹了C#繪制餅狀圖和柱狀圖的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • c# 實例——繪制波浪線(附源碼)

    c# 實例——繪制波浪線(附源碼)

    這篇文章主要介紹了c#如何繪制波浪線,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#中參數(shù)個數(shù)可變的方法實例分析

    C#中參數(shù)個數(shù)可變的方法實例分析

    這篇文章主要介紹了C#中參數(shù)個數(shù)可變的方法,以一個簡單實例分析了C#中參數(shù)個數(shù)可變的方法,主要是使用params關(guān)鍵字來實現(xiàn)的,是C#編程中比較實用的技巧,需要的朋友可以參考下
    2014-11-11
  • 使用C#連接并讀取MongoDB數(shù)據(jù)庫

    使用C#連接并讀取MongoDB數(shù)據(jù)庫

    這篇文章介紹了使用C#連接并讀取MongoDB數(shù)據(jù)庫的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • C#使用回溯法解決背包問題實例分析

    C#使用回溯法解決背包問題實例分析

    這篇文章主要介紹了C#使用回溯法解決背包問題,實例分析了背包問題的描述及C#解決方法,需要的朋友可以參考下
    2015-04-04
  • C#中對象狀態(tài)模式教程示例

    C#中對象狀態(tài)模式教程示例

    這篇文章主要為大家介紹了C#中對象狀態(tài)模式的教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Unity Shader實現(xiàn)黑幕過場效果

    Unity Shader實現(xiàn)黑幕過場效果

    這篇文章主要為大家詳細(xì)介紹了Unity Shader實現(xiàn)黑幕過場效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評論