0

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

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

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

如果我以错误的方式使用 BenchmarkDotNet,是否还有另一种更符合我想要完成的测试套件?

谢谢你,斯蒂芬

4

1 回答 1

5

BenchmarkDotNet 最适合 CPU 绑定代码的微基准测试。有很多因素会影响 IO 绑定代码,因此我不认为微基准测试是一种很好的方法。

相反,如果可能的话,我建议您将每个框架集成到您的应用程序中,并在尽可能现实的条件下测量性能......包括“灾难性故障”条件或日志记录可能会受到打击的情况。还使用什么都不做(并且尽可能早地什么都不做)的“空记录器”进行测试,以便您可以确定一种基线。

这只会告诉您这些日志记录框架在您的特定应用程序中的行为方式——但我建议,这是您要找出的最重要的事情。

于 2016-07-03T20:13:22.003 回答