CodeBenchmark是一款可视化的性能测试组件,通过组件可以对一个或多个功能代码进行一个并发测试;最终通过详细的测试结果来对比不同代码的性能差异。
组件的使用非常简单,构建一个控制台程序然后引入BeetleX.CodeBenchmark组件编写几个代码即可完成测试服务部署。
class Program
{
static void Main(string[] args)
{
Benchmark benchmark = new Benchmark();
benchmark.Register(typeof(Program).Assembly);
benchmark.Start(80,true);
}
}
以上代码是添加一个基准测试服务,并引入当前程序集中所有的测试用例并在80端口中启用管理服务(如果当前系统是windows则会直接打开浏览访问)。
组件的测试代码需要自己编写具体的测试用例,测试用例规则是实现组件的IExample接口,以下是针对两个网站访问的简单用例:
[System.ComponentModel.Category("HTTP")]
class BaiduGet : IExample
{
public void Dispose()
{
}
public async Task Execute()
{
var result = await "https://www.baidu.com".FormUrlRequest().Get();
}
public void Initialize(Benchmark benchmark)
{
}
}
[System.ComponentModel.Category("HTTP")]
class WYGet : IExample
{
public void Dispose()
{
}
public async Task Execute()
{
var result = await "https://www.163.com".FormUrlRequest().Get();
}
public void Initialize(Benchmark benchmark)
{
}
}
通过组件可以针对用例添加多个并发测试方案,可以选择对应的并发数和测试时间进行压力测试。测试完成后会显示每个用例的测试情况和具体的延时分布。
结果展示不同并发下的具体RPS情况和每个用例的具体延时分布,从而得到更高性能代码的测试结果。
接下来测试一下数据库操作分别在1Gb和10Gb网络下的性能差异:
下载使用示例:
https://github.com/beetlex-io/BeetleX-Samples/tree/master/CodeBenchmark.Sample
BeetleX
开源跨平台通讯框架(支持TLS)
提供高性能服务和大数据处理解决方案
https://beetlex.io