1

我有一组用于基准测试的 HTTP 调用:

public class HttpExamples
{

    [Benchmark]
    public void GetExampleCom()
    {
        var request = WebRequest.CreateHttp("http://example.com");
        var webResponse = request.GetResponse();
    }

    [Benchmark]
    public void GetExampleComSsl()
    {
        var request = WebRequest.CreateHttp("https://example.com");
        var webResponse = request.GetResponse();
    }
}

有时,其中一个请求会由于某种原因而失败。目前,这似乎停止了基准测试,我更希望它以某种方式处理异常。

这可以实现吗?

我想:

  • 从结果中消除失败。
  • 标记他们发生了

奖励积分:

  • 保留失败的度量,以便我们可以看到失败如何影响结果。
  • 能够查看不同类型异常的结果。
  • 在失败时做“事情”(清理一些东西)
4

2 回答 2

0

尝试添加手动配置,类似于https://github.com/dotnet/BenchmarkDotNet/issues/579#issuecomment-345464911中提到的配置

添加(JitOptimizationsValidator.DontFailOnError);// 允许非优化的 DLL 可以解决问题

于 2019-01-09T17:00:35.817 回答
0

BenchmarkDotNet 是一个微型基准测试工具,它专为非常精确的 CPU 绑定的纳米和微型基准测试而设计。它可以进行一些 HTTP 基准测试,但即使您使用自定义配置,您也不会获得像wrkbombardier等专为 HTTP 基准测试设计的工具那样好的体验。

于 2020-11-13T11:50:20.513 回答