星空网 > 软件开发 > ASP.net

性能测试类,让你写法代码养成经常测试的好习惯

介绍:

可以很方便的在代码里循环执行 需要测试的函数  自动统计出执行时间,支持多线程

 

使用方法:

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

  

 




原标题:性能测试类,让你写法代码养成经常测试的好习惯

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

印度BIS认证标准更新细节:https://www.ikjzd.com/w/1095
upc:https://www.ikjzd.com/w/111
Unfulfillable库存如何处理:https://www.ikjzd.com/w/112
UL认证:https://www.ikjzd.com/w/113
图片网TinyPic:https://www.ikjzd.com/w/114
测试单testbuy是什么:https://www.ikjzd.com/w/115
跨境支付百科——巴西支付篇:https://www.kjdsnews.com/a/1836648.html
大福地快捷酒店预订 大福酒店怎么走:https://www.vstour.cn/a/365187.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流