Обработка исключений в BenchmarkDotNet
У меня есть набор 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();
}
}
Иногда по какой-либо причине один из запросов не будет выполнен. В настоящее время это, кажется, останавливает тестирование, и я бы предпочел, чтобы оно каким-то образом обрабатывало исключение.
Можно ли этого достичь?
Я бы хотел:
- Устранить сбои из результатов.
- Флаг, что они произошли
Бонусные очки:
- Сохраняйте показатели ошибок, чтобы мы могли видеть, как ошибки влияют на результаты.
- Уметь видеть результаты для разных типов исключений.
- Сделай "вещь" при неудаче (убери кое что)
0 ответов
Попробуйте добавить конфигурацию вручную, аналогичную конфигурации, упомянутой в https://github.com/dotnet/BenchmarkDotNet/issues/579.
Добавить (JitOptimizationsValidator.DontFailOnError); // РАЗРЕШИТЬ НЕОПТИМИЗИРОВАННЫЕ DLLs
BenchmarkDotNet - это инструмент для микротестирования, он был разработан для очень точных нано- и микротестов с привязкой к процессору. Он может выполнять некоторые тесты HTTP, но даже если вы используете настраиваемую конфигурацию, вы не получите такой же хороший опыт, как с инструментами, разработанными для тестирования HTTP, такими как wrk или bombardier.