• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#代码性能测试类(简单实用)

C#代码性能测试类(简单实用)

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c语言,欲情 c max,crh2c,奔驰c200,85度c等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

介绍:

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

 

使用方法:

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秒
 
}
);
</div>

源码:

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详解C#中三个关键字params,Ref,out
  • 浅谈C#中的for循环与foreach循环
  • 关于C#中ajax跨域访问问题
  • 使用C#编写15子游戏
  • 为IObservable实现自己的运算符(详解)
  • 使用C#正则表达式获取必应每日图片地址
  • C#七大经典排序算法系列(上)
  • C#无损压缩图片
  • C# BackgroundWorker用法详解
  • 详解三种C#实现数组反转方式

相关文章

  • 2017-05-28c#不使用系统api实现可以指定区域屏幕截屏功能
  • 2017-05-28C#生成随机数实例
  • 2017-05-28C# WinForm窗口最小化到系统托盘
  • 2017-05-28C#多线程之Thread中Thread.IsAlive属性用法分析
  • 2017-05-28使用C#实现读取系统配置文件的代码实例讲解
  • 2017-05-28C#预定义数据类型之值类型和引用类型介绍
  • 2017-05-28C#中Json的简单处理方法
  • 2017-05-28C#获得MAC地址(网卡序列号)的实现代码
  • 2017-05-28c#使用nsoup解析html乱码解决方法分享 nsoup教程
  • 2017-05-28时间字符串转换成日期对象datetime的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#中if语句使用概述
    • .Net WInform开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用
    • DevExpress实现根据行,列索引来获取RepositoryItem的方法
    • String.Format大全(C# Java)
    • 谈谈C# replace在正则表达式中的意义
    • C#自定义基于控制台的Timer实例
    • C#与js实现去除textbox文本框里面重复记录的方法
    • C#委托delegate实例解析
    • razor 页面 js int 输出 等
    • C#正则表达式获取下拉菜单(select)的相关属性值

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有