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