]> Cypherpunks repositories - gostls13.git/commitdiff
net: add BenchmarkWriteToReadFromUDPAddrPort
authorJosh Bleecher Snyder <josharian@gmail.com>
Mon, 1 Nov 2021 21:07:30 +0000 (14:07 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Tue, 2 Nov 2021 18:35:22 +0000 (18:35 +0000)
The main item of interest is the allocs.

BenchmarkWriteToReadFromUDPAddrPort-8      237735       5152 ns/op       68 B/op        3 allocs/op

Change-Id: I5cb3f2e1ebbb02acc51039c2266e99b90d388a99
Reviewed-on: https://go-review.googlesource.com/c/go/+/360598
Trust: Josh Bleecher Snyder <josharian@gmail.com>
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/net/udpsock_test.go

index 74e449c888170c62977c82e3e6358e37c00a6719..371d9af511603c1fa4654af15a209fe710435e0f 100644 (file)
@@ -479,6 +479,7 @@ func BenchmarkReadWriteMsgUDPAddrPort(b *testing.B) {
        if err != nil {
                b.Fatal(err)
        }
+       defer conn.Close()
        addr := conn.LocalAddr().(*UDPAddr).AddrPort()
        buf := make([]byte, 8)
        b.ResetTimer()
@@ -500,6 +501,7 @@ func BenchmarkWriteToReadFromUDP(b *testing.B) {
        if err != nil {
                b.Fatal(err)
        }
+       defer conn.Close()
        addr := conn.LocalAddr()
        buf := make([]byte, 8)
        b.ResetTimer()
@@ -515,3 +517,25 @@ func BenchmarkWriteToReadFromUDP(b *testing.B) {
                }
        }
 }
+
+func BenchmarkWriteToReadFromUDPAddrPort(b *testing.B) {
+       conn, err := ListenUDP("udp4", &UDPAddr{IP: IPv4(127, 0, 0, 1)})
+       if err != nil {
+               b.Fatal(err)
+       }
+       defer conn.Close()
+       addr := conn.LocalAddr().(*UDPAddr).AddrPort()
+       buf := make([]byte, 8)
+       b.ResetTimer()
+       b.ReportAllocs()
+       for i := 0; i < b.N; i++ {
+               _, err := conn.WriteToUDPAddrPort(buf, addr)
+               if err != nil {
+                       b.Fatal(err)
+               }
+               _, _, err = conn.ReadFromUDP(buf) // TODO: create and use ReadFromUDPAddrPort
+               if err != nil {
+                       b.Fatal(err)
+               }
+       }
+}