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

Tricia ·
更新时间:2024-09-21
· 877 次阅读

介绍:

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

使用方法:

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#代码实现PDF文档操作类10个C#程序员经常用到的实用代码片段C#获取网页源代码的方法C#之IO读写文件方法封装代码C#实现开机自动启动设置代码分享C#对称加密(AES加密)每次生成的结果都不同的实现思路和代码实例C#实现的json序列化和反序列化代码实例C#判断某个软件是否已安装实现代码分享C#生成Word文档代码示例C#对文件/文件夹操作代码汇总C#超实用代码段合集



c#代码 C# 性能 测试类 性能测试 测试

需要 登录 后方可回复, 如果你还没有账号请 注册新账号