如何使用BenchmarkDotNet对日志基础架构进行基准测试

本文关键字:基准测试 何使用 BenchmarkDotNet 日志 | 更新日期: 2023-09-27 17:54:32

我们有一个内部框架来处理我们的日志记录,数据访问,加密…你能想到的。我想开始比较性能,比如日志功能和其他主流系统,如nlog, log4net, serilog。显然,我会从所有系统都有的功能开始,比如记录到文件或控制台。

BenchmarkDotNet是否适用于这样的情况?我读过的大多数例子和论文都表明了在非常紧密的循环中使用场景,并且主要使用IO,如内存和CPU,而不是磁盘。

作为练习,我编写了一个xunit测试,使用Baseline功能对控制台的编写进行基准测试,但测试从未完成,我最终终止了这个过程,这导致我写了这篇关于SO的文章。

如果我使用BenchmarkDotNet错误的方式是否有另一个测试套装,这是更内联我想要完成的?

谢谢你,斯蒂芬。

如何使用BenchmarkDotNet对日志基础架构进行基准测试

BenchmarkDotNet最适合对cpu密集型代码进行微基准测试。影响io绑定代码的因素太多了,我不认为微基准测试是一种很好的方法。

相反,如果可能的话,我建议你将每个框架集成到你的应用程序中,并在尽可能现实的条件下测量性能……包括"灾难性故障"情况或日志记录可能遭受重创的情况。还可以使用"null记录器"进行测试,它不做任何事情(并且尽可能早地不做任何事情),以便您可以确定一种基线。

这只会告诉你这些日志框架在你的特定应用程序中是如何工作的——但我建议,这是你需要了解的最重要的事情。