摘要: 一般来说多运行时多方法的基准测试会消耗很长时间, 但是在测试结果波动较大的时候会追加测试直到稳定, 这可能会阻塞整个测试流程 运行过程中能看到类似如下的日志记录 OverheadJitting 1: 1 op, 177900.00 ns, 177.9000 us/op WorkloadJitting 阅读全文
posted @ 2023-10-09 17:26 崩坏的领航员 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 之前的字符串判空测试中, 循环次数为固定的100次, 如果我想要测试1000次或者10000次, 就必须修改代码然后重新运行项目, 这样的操作是非常不方便的 因此可以标记运行中所使用的参数, 提前进行配置 [SimpleJob(RuntimeMoniker.Net70)] [SimpleJob(Ru 阅读全文
posted @ 2023-10-09 17:26 崩坏的领航员 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 在基准测试中, 除了运行耗时之外, 使用内存也是一项比较重要的指标, 下面介绍一下如何在最终的结果中展示内存方面的使用情况 // 由于现在需要展示内存方面的指标, 原来的字符串判空由于使用内存较少, 不适合用来做测试 // 因此定义了以下拥有相同属性的结构体和类 public struct SMod 阅读全文
posted @ 2023-10-09 17:26 崩坏的领航员 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 微软整天说dotnet的新版本比旧版本快了很多, 每次更新都说有性能提升, 有各种各样的调用优化, 为了验证微软是不是瞎说, 我们可以对比不同的运行时 首先需要修改项目文件, 将原来的单运行时换成多运行时 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGrou 阅读全文
posted @ 2023-10-09 17:26 崩坏的领航员 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 很多时候我们对比的目的非常简单, 就是看看两个方法哪个快哪个慢 上一个例子运行后得到的结果如下: Method Mean Error StdDev TestEmpty 0.0121 ns 0.0123 ns 0.0102 ns TestWhiteSpace 1.7137 ns 0.0306 ns 0 阅读全文
posted @ 2023-10-09 17:25 崩坏的领航员 阅读(21) 评论(0) 推荐(0) 编辑
摘要: Benchmark 项目的结构非常简单, 只需要创建最基础的控制台程序即可 dotnet new console -n benchmarkproject 然后添加nuget包应用 dotnet add package BenchmarkDotNet 或者直接修改 benchmarkproject.c 阅读全文
posted @ 2023-10-09 17:25 崩坏的领航员 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 有些时候我们实现了某个功能, 但是仅仅通过有限的几次调用无法知道这个功能的执行效率以及资源占用情况, 此时就可以使用 Benchmark 对这个功能进行基准测试 在 dotnet 中主要使用 BenchmarkDotNet BenchmarkDotNet 是一个.NET的基准测试框架, 主要用于测量 阅读全文
posted @ 2023-10-09 13:36 崩坏的领航员 阅读(88) 评论(0) 推荐(1) 编辑