forked from quic-go/quic-go
wire: optimize parsing of long header packets (#4589)
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"bytes"
|
||||
"log"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/quic-go/quic-go/internal/protocol"
|
||||
"github.com/quic-go/quic-go/internal/utils"
|
||||
@@ -331,3 +332,33 @@ var _ = Describe("Header", func() {
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
func BenchmarkParseExtendedHeader(b *testing.B) {
|
||||
data, err := (&ExtendedHeader{
|
||||
Header: Header{
|
||||
Type: protocol.PacketTypeHandshake,
|
||||
DestConnectionID: protocol.ParseConnectionID([]byte{0xde, 0xad, 0xbe, 0xef, 0xca, 0xfe}),
|
||||
SrcConnectionID: protocol.ParseConnectionID([]byte{0xde, 0xca, 0xfb, 0xad, 0x0, 0x0, 0x13, 0x37}),
|
||||
Version: protocol.Version1,
|
||||
Length: 1234,
|
||||
},
|
||||
PacketNumber: 0xdecaf,
|
||||
PacketNumberLen: protocol.PacketNumberLen3,
|
||||
}).Append(nil, protocol.Version1)
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
data = append(data, make([]byte, 1231)...)
|
||||
|
||||
b.ResetTimer()
|
||||
b.ReportAllocs()
|
||||
for i := 0; i < b.N; i++ {
|
||||
hdr, _, _, err := ParsePacket(data)
|
||||
if err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
if _, err := hdr.ParseExtended(data); err != nil {
|
||||
b.Fatal(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user