From aae7289055a06511ba3fd149b3265ec0df0c3fc8 Mon Sep 17 00:00:00 2001 From: Christoph Petrausch <christoph.petrausch@inovex.de> Date: Wed, 20 Jun 2018 21:31:18 +0200 Subject: [PATCH] Added benchmark --- .../packet/large_community_benchmark_test.go | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 protocols/bgp/packet/large_community_benchmark_test.go diff --git a/protocols/bgp/packet/large_community_benchmark_test.go b/protocols/bgp/packet/large_community_benchmark_test.go new file mode 100644 index 00000000..7e37bcdf --- /dev/null +++ b/protocols/bgp/packet/large_community_benchmark_test.go @@ -0,0 +1,28 @@ +package packet + +import ( + "fmt" + "strconv" + "strings" + "testing" +) + +func BenchmarkParseLargeCommunityString(b *testing.B) { + for _, i := range []int{1, 2, 4, 8, 16, 32} { + str := getNNumbers(i) + input := strings.Join([]string{str, str, str}, ",") + b.Run(fmt.Sprintf("BenchmarkParseLargeCommunityString-%d", i), func(b *testing.B) { + for n := 0; n < b.N; n++ { + ParseLargeCommunityString(input) + } + }) + } +} + +func getNNumbers(n int) (ret string) { + var numbers string + for i := 0; i < n; i++ { + numbers += strconv.Itoa(i % 10) + } + return numbers +} -- GitLab