From bd69ea37cfd09307d262502537ab50c852282bd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Matczuk?= Date: Thu, 5 Dec 2024 10:38:19 +0100 Subject: [PATCH] martian/header: Add BenchmarkViaModifier MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit benchstat old.txt new.txt goos: darwin goarch: arm64 pkg: github.com/saucelabs/forwarder/internal/martian/header cpu: Apple M1 Pro │ old.txt │ new.txt │ │ sec/op │ sec/op vs base │ ViaModifier 2299.0n ± 3% 154.3n ± 2% -93.29% (p=0.000 n=10) │ old.txt │ new.txt │ │ B/op │ B/op vs base │ ViaModifier 1440.0 ± 0% 160.0 ± 0% -88.89% (p=0.000 n=10) │ old.txt │ new.txt │ │ allocs/op │ allocs/op vs base │ ViaModifier 31.000 ± 0% 4.000 ± 0% -87.10% (p=0.000 n=10) --- internal/martian/header/via_modifier_test.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/internal/martian/header/via_modifier_test.go b/internal/martian/header/via_modifier_test.go index 75e79172..6377030e 100644 --- a/internal/martian/header/via_modifier_test.go +++ b/internal/martian/header/via_modifier_test.go @@ -51,3 +51,22 @@ func TestViaModifier(t *testing.T) { t.Fatalf("req.Close: got %v, want true", req.Close) } } + +func BenchmarkViaModifier(b *testing.B) { + const via = "1.0\talpha\t(martian), 1.1 martian-boundary, 1.1 beta" + + req, err := http.NewRequest(http.MethodGet, "/", http.NoBody) + if err != nil { + b.Fatalf("http.NewRequest(): got %v, want no error", err) + } + + m := NewViaModifier("martian") + + b.ResetTimer() + for i := 0; i < b.N; i++ { + req.Header.Set("Via", via) + if err := m.ModifyRequest(req); err != nil { + b.Fatalf("ModifyRequest(): got %v, want no error", err) + } + } +}