O método foi bem simples, vou tentar deixar os detalhes aqui. Usei o pacote BenchmarkDotNet para realizar a medição e como você bem disse, apenas chamei a rota /
de ambos os servidores configurados como mandei anteriormente, usei de fato kestrel para MinimalAPI, e basicamente envolvi o http.Start
do servidor Sisk em um Task.Run()
para que ambos rodassem e paralelo.
O start dos dois servidores foi dessa forma
Task.WaitAll(SiskApi(), MinimalApi());
E aqui está o código da medição.
public static class Program
{
private static void Main() => BenchmarkRunner.Run<SiskVsMinimalBenckmark>();
}
public class SiskVsMinimalBenckmark
{
private HttpClient? _httpClient;
[GlobalSetup]
public void Setup() => _httpClient = new HttpClient();
[Benchmark]
public async Task MinimalApi() => await _httpClient!.GetStringAsync("http://localhost:5221/");
[Benchmark]
public async Task SiskApi() => await _httpClient!.GetStringAsync("http://localhost:5222/");
}