From 355c6296f06b3757dd9b18e3b759b20d9bca5239 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Mon, 10 Aug 2020 10:14:36 -0700 Subject: [PATCH] derp: add readUint32 and writeUint32 benchmarks These aren't particularly performance critical, but since I have an optimization pending for them, it's worth having a corresponding benchmark. Signed-off-by: Josh Bleecher Snyder --- derp/derp_test.go | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/derp/derp_test.go b/derp/derp_test.go index 947ced2e0..203c5138b 100644 --- a/derp/derp_test.go +++ b/derp/derp_test.go @@ -12,6 +12,7 @@ import ( "expvar" "fmt" "io" + "io/ioutil" "net" "reflect" "sync" @@ -803,3 +804,33 @@ func benchmarkSendRecvSize(b *testing.B, packetSize int) { } } } + +func BenchmarkWriteUint32(b *testing.B) { + w := bufio.NewWriter(ioutil.Discard) + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + writeUint32(w, 0x0ba3a) + } +} + +type nopRead struct{} + +func (r nopRead) Read(p []byte) (int, error) { + return len(p), nil +} + +var sinkU32 uint32 + +func BenchmarkReadUint32(b *testing.B) { + r := bufio.NewReader(nopRead{}) + var err error + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + sinkU32, err = readUint32(r) + if err != nil { + b.Fatal(err) + } + } +}