net/packet: remove {get,put}{16,32} indirection to encoding/binary.

name              old time/op    new time/op    delta
Decode/tcp4-8       28.8ns ± 2%    13.1ns ± 4%  -54.44%  (p=0.008 n=5+5)
Decode/tcp6-8       20.6ns ± 1%    12.6ns ± 2%  -38.72%  (p=0.008 n=5+5)
Decode/udp4-8       28.2ns ± 1%    12.1ns ± 4%  -57.01%  (p=0.008 n=5+5)
Decode/udp6-8       20.0ns ± 6%    12.1ns ± 2%  -39.38%  (p=0.008 n=5+5)
Decode/icmp4-8      21.7ns ± 2%    11.5ns ± 1%  -47.01%  (p=0.008 n=5+5)
Decode/icmp6-8      14.1ns ± 2%    11.8ns ± 4%  -16.60%  (p=0.008 n=5+5)
Decode/unknown-8    9.43ns ± 2%    9.30ns ± 3%     ~     (p=0.222 n=5+5)

Signed-off-by: David Anderson <danderson@tailscale.com>
This commit is contained in:
David Anderson
2020-11-10 19:09:47 -08:00
committed by Dave Anderson
parent 55b1221db2
commit 22bf48f37c
4 changed files with 39 additions and 42 deletions

View File

@@ -4,6 +4,8 @@
package packet
import "encoding/binary"
type ICMP4Type uint8
const (
@@ -66,7 +68,7 @@ func (h ICMP4Header) Marshal(buf []byte) error {
h.IP4Header.Marshal(buf)
put16(buf[22:24], ipChecksum(buf))
binary.BigEndian.PutUint16(buf[22:24], ipChecksum(buf))
return nil
}