This commit is contained in:
2248356998 qq.com
2025-09-08 21:16:37 +08:00
parent aa247422d2
commit 0b829ac85c
16 changed files with 630 additions and 191 deletions

View File

@@ -0,0 +1,59 @@
//------------------------------------------------------------------------------
// 此代码版权除特别声明或在XREF结尾的命名空间的代码归作者本人若汝棋茗所有
// 源代码使用协议遵循本仓库的开源协议及附加协议若本仓库没有设置则按MIT开源协议授权
// CSDN博客https://blog.csdn.net/qq_40374647
// 哔哩哔哩视频https://space.bilibili.com/94253567
// Gitee源代码仓库https://gitee.com/RRQM_Home
// Github源代码仓库https://github.com/RRQM
// API首页http://rrqm_home.gitee.io/touchsocket/
// 交流QQ群234762506
// 感谢您的下载和使用
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
using BenchmarkDotNet.Configs;
using BenchmarkDotNet.Running;
using ThingsGateway.Foundation;
namespace BenchmarkConsoleApp
{
internal class Program
{
public static int ClientCount = 30;
public static int TaskNumberOfItems = 30;
public static int NumberOfItems = 30;
private static async Task Main(string[] args)
{
Console.WriteLine("开始测试前请先启动ModbusSlave建议使用本项目自带的ThingsGateway.Debug.Photino软件开启S7可以用KEPSERVER的S7模拟服务");
Console.WriteLine($"多客户端({ClientCount}),多线程({TaskNumberOfItems})并发读取({NumberOfItems})测试,共{ClientCount * TaskNumberOfItems * NumberOfItems}次");
await Task.CompletedTask;
//ModbusBenchmark modbusBenchmark = new ModbusBenchmark();
//System.Diagnostics.Stopwatch stopwatch = new();
//stopwatch.Start();
//await modbusBenchmark.ThingsGateway();
//stopwatch.Stop();
//Console.WriteLine($"ThingsGateway耗时{stopwatch.ElapsedMilliseconds}ms");
//stopwatch.Restart();
//await modbusBenchmark.TouchSocket();
//stopwatch.Stop();
//Console.WriteLine($"TouchSocket耗时{stopwatch.ElapsedMilliseconds}ms");
//Console.ReadLine();
// BenchmarkRunner.Run<TimeoutBenchmark>(
//ManualConfig.Create(DefaultConfig.Instance)
//.WithOptions(ConfigOptions.DisableOptimizationsValidator)
//);
BenchmarkRunner.Run<ModbusBenchmark>(
ManualConfig.Create(DefaultConfig.Instance)
.WithOptions(ConfigOptions.DisableOptimizationsValidator)
);
BenchmarkRunner.Run<S7Benchmark>(
ManualConfig.Create(DefaultConfig.Instance)
.WithOptions(ConfigOptions.DisableOptimizationsValidator)
);
}
}
}