手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#代码性能测试类(简单实用)
C#代码性能测试类(简单实用)
摘要:介绍:可以很方便的在代码里循环执行需要测试的函数自动统计出执行时间,支持多线程。使用方法:PerformanceTestp=newPerfo...

介绍:

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

使用方法:

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

【C#代码性能测试类(简单实用)】相关文章:

C# 图片与二进制转换的简单实例

C#调用Java类的实现方法

C#的编码规范详细说明

c# 控件截图的简单实例

浅谈c# 泛型类的应用

C#索引器简单实例代码

c# 网址压缩简单实现短网址

通过VS中的数据源选择对话框简单实现数据库连接配置[图]

C#泛型与非泛型性能比较的实例

C#简单的加密类实例

精品推荐
分类导航