c 多语言网站怎么做,wordpress 登录空白页,施工合同协议书内容,如何在网站找做贸易的客户今天#xff0c;我们将研究如何使用Benchmark.Net来测试代码性能。借助基准测试#xff0c;我们可以创建基准来验证所做的更改是否按预期工作并且不会导致性能下降。并非每个项目都需要进行基准测试#xff0c;但是如果您正在开发的是NuGet程序包或通用dll#xff0c;则很有… 今天我们将研究如何使用Benchmark.Net来测试代码性能。借助基准测试我们可以创建基准来验证所做的更改是否按预期工作并且不会导致性能下降。并非每个项目都需要进行基准测试但是如果您正在开发的是NuGet程序包或通用dll则很有意义。我们将使用它来解决一个古老的问题字符串拼接比如下面这样string myString string1 string2 string3 string4 string5;
Console.WriteLine(myString);
我们很多人都知道建议使用StringBuilder作为替代方法并且速度要快得多特别是在您有很多字符串的情况下。StringBuilder sb new StringBuilder();
sb.Append(string1);
sb.Append(string2);
sb.Append(string3);
sb.Append(string4);
sb.Append(string5);
Console.WriteLine(sb.ToString());
Benchmark.NET首先我们需要创建一个控制台项目,BenchmarkTesting.App接下来我们添加NuGet包 BenchmarkDotNet然后修改 program.cs文件中把可访问性改成 public现在我们可以创建一些测试方法我们直接修改program.cs, 每个测试方法都需要 [Benchmark] 特性我创建了三个示例分别使用运算符Linq的Concat函数和使用StringBuilder拼接。最后在控制台应用程序的Main入口点中添加 BenchmarkRunning Run命令:然后我们使用下边的命令运行测试或者直接使用VS启动项目需要切换到Release模式下dotnet run -p BenchmarkTesting.app.csproj -c Release
运行大约需要几分钟基准测试工具在后台创建大量线程/作业并多次运行测试为了获得一致的结果建议最小化打开的应用程序并且在运行时不要执行任何其他操作输出如下所示其中包含很多信息。单位us是μs或微秒的缩写,一微秒等于一毫秒的1/1000。由此可见StringBuilder要比运算符效率更高Linq Concat函数也相对高效但还是没有StringBuilder快。总结拼接字符串时使用StringBuilder本篇文章只是简单作的做了介绍Benchmark.NET是测试性能的非常强大的工具如果需要构建Nuget包或者开发通用类库时这将是一种很好的测试方法。原文链接 https://samlearnsazure.blog/2021/01/12/measuring-code-performance-with-benchmark-net/[1]欢迎关注我们的公众号 【全球技术精选】专注国外优秀博客的翻译和开源项目分享也可以添加QQ群 897216102