From 61d546113825dbfb78efb7c6809fd751ed62c89c Mon Sep 17 00:00:00 2001 From: Igor Postelnik Date: Mon, 27 Jul 2020 17:05:45 -0500 Subject: [PATCH] TUN-3209: Add benchmark for header serialization --- h2mux/header_test.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/h2mux/header_test.go b/h2mux/header_test.go index 95170230..787d278f 100644 --- a/h2mux/header_test.go +++ b/h2mux/header_test.go @@ -650,3 +650,27 @@ func randSeq(n int) string { } return string(b) } + +func BenchmarkH1ResponseToH2ResponseHeaders(b *testing.B) { + ser := "eC1mb3J3YXJkZWQtcHJvdG8:aHR0cHM;dXBncmFkZS1pbnNlY3VyZS1yZXF1ZXN0cw:MQ;YWNjZXB0LWxhbmd1YWdl:ZW4tVVMsZW47cT0wLjkscnU7cT0wLjg;YWNjZXB0LWVuY29kaW5n:Z3ppcA;eC1mb3J3YXJkZWQtZm9y:MTczLjI0NS42MC42;dXNlci1hZ2VudA:TW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTRfNikgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzg0LjAuNDE0Ny44OSBTYWZhcmkvNTM3LjM2;c2VjLWZldGNoLW1vZGU:bmF2aWdhdGU;Y2RuLWxvb3A:Y2xvdWRmbGFyZQ;c2VjLWZldGNoLWRlc3Q:ZG9jdW1lbnQ;c2VjLWZldGNoLXVzZXI:PzE;c2VjLWZldGNoLXNpdGU:bm9uZQ;Y29va2ll:X19jZmR1aWQ9ZGNkOWZjOGNjNWMxMzE0NTMyYTFkMjhlZDEyOWRhOTYwMTU2OTk1MTYzNDsgX19jZl9ibT1mYzY2MzMzYzAzZmM0MWFiZTZmOWEyYzI2ZDUwOTA0YzIxYzZhMTQ2LTE1OTU2MjIzNDEtMTgwMC1BZTVzS2pIU2NiWGVFM05mMUhrTlNQMG1tMHBLc2pQWkloVnM1Z2g1SkNHQkFhS1UxVDB2b003alBGN3FjMHVSR2NjZGcrWHdhL1EzbTJhQzdDVU4xZ2M9;YWNjZXB0:dGV4dC9odG1sLGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksaW1hZ2Uvd2VicCxpbWFnZS9hcG5nLCovKjtxPTAuOCxhcHBsaWNhdGlvbi9zaWduZWQtZXhjaGFuZ2U7dj1iMztxPTAuOQ" + h2, _ := DeserializeHeaders(ser) + h1 := make(http.Header) + for _, header := range h2 { + h1.Add(header.Name, header.Value) + } + h1.Add("Content-Length", "200") + h1.Add("Cf-Something", "Else") + h1.Add("Upgrade", "websocket") + + h1resp := &http.Response{ + StatusCode: 200, + Header: h1, + } + + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + _ = H1ResponseToH2ResponseHeaders(h1resp) + } +} +