C#高性能代码测试工具类:支持循环与多线程计时
这是一个轻量级的C#性能测试辅助类,主要用于快速统计特定代码块或方法的运行时间。它支持设置循环执行次数以及开启多线程并发测试模式,能够自动记录开始到结束的总耗时并以秒为单位返回结果。该工具非常适合在开发阶段进行简单的性能基准测试。
功能概述
在进行代码优化或压测时,开发者往往需要一个便捷的工具来测量特定逻辑的执行效率。这个 PerformanceTest 类封装了计时逻辑,主要具备以下特点:
- 自动统计耗时:从代码启动开始计时,直到所有任务完成后停止,输出精确到小数点后5位的秒数。
- 支持循环测试:可通过配置设定执行的次数,便于观察多次运行的平均表现或累积耗时。
- 支持多线程模式:可选择是否以并发线程的方式执行测试代码,模拟高并发场景下的性能表现。
使用步骤
第1步:初始化测试实例并配置参数
首先创建 PerformanceTest 的实例。你可以通过以下方法调整测试行为:
SetCount(int count):设置代码块执行的循环次数。默认值为 1。SetIsMultithread(bool isMul):设置为true将启用多线程并发测试,默认为false(单线程顺序执行)。
第2步:调用 Execute 方法执行测试
调用 Execute 方法,传入两个委托:Action<int> 用于定义需要测试的代码逻辑,Action<string> 用于接收测试结果。
- 输入参数:第一个参数是测试函数,接收当前循环索引作为参数;第二个参数是回调函数,接收格式化后的总耗时字符串。
- 注意事项:在多模式下,所有子线程执行完毕后才会触发回调函数,确保计时的准确性。
代码示例
以下是一个基本的使用示例,展示了如何测试一段包含延时操作的代码:
using System;
// 创建测试实例
PerformanceTest p = new PerformanceTest();
// 配置:循环10次,开启多线程测试
p.SetCount(10);
p.SetIsMultithread(true);
// 执行测试
p.Execute(
i =>
{
// 这里放置需要测试的代码
Console.WriteLine($"Thread {i} running...");
System.Threading.Thread.Sleep(1000); // 模拟耗时操作
},
message =>
{
// 获取测试结果
Console.WriteLine(message);
}
);
核心源码参考
如果需要将其集成到自己的项目中,可以参考以下完整实现。该源码基于 .NET Framework 风格编写,依赖 System.Threading 命名空间。
using System;
using System.Collections.Generic;
using System.Threading;
namespace SyntacticSugar
{
/// <summary>
/// 程序性能测试类:支持循环次数设置与多线程模式
/// </summary>
public class PerformanceTest
{
private DateTime BeginTime;
private DateTime EndTime;
private ParamsModel Params;
/// <summary>
/// 构造函数:默认执行1次,单线程模式
/// </summary>
public PerformanceTest()
{
Params = new ParamsModel() { RunCount = 1 };
}
/// <summary>
/// 设置执行循环次数
/// </summary>
public void SetCount(int count)
{
Params.RunCount = count;
}
/// <summary>
/// 设置是否启用多线程模式
/// </summary>
public void SetIsMultithread(bool isMul)
{
Params.IsMultithread = isMul;
}
/// <summary>
/// 执行测试函数
///
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













