From 807dd67927202512de06eca1b352049805f05589 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Fri, 13 Sep 2019 13:37:41 +0700 Subject: [PATCH] improve memory alignment of frequently used structs --- internal/handshake/transport_parameters.go | 5 +++-- internal/wire/extended_header.go | 4 ++-- internal/wire/header.go | 9 +++++---- internal/wire/stream_frame.go | 4 ++-- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/internal/handshake/transport_parameters.go b/internal/handshake/transport_parameters.go index 7f8da704..bf7e7e53 100644 --- a/internal/handshake/transport_parameters.go +++ b/internal/handshake/transport_parameters.go @@ -46,13 +46,14 @@ type TransportParameters struct { MaxAckDelay time.Duration AckDelayExponent uint8 + DisableMigration bool + MaxPacketSize protocol.ByteCount MaxUniStreamNum protocol.StreamNum MaxBidiStreamNum protocol.StreamNum - IdleTimeout time.Duration - DisableMigration bool + IdleTimeout time.Duration StatelessResetToken *[16]byte OriginalConnectionID protocol.ConnectionID diff --git a/internal/wire/extended_header.go b/internal/wire/extended_header.go index 40088e56..a8387b71 100644 --- a/internal/wire/extended_header.go +++ b/internal/wire/extended_header.go @@ -22,10 +22,10 @@ type ExtendedHeader struct { typeByte byte + KeyPhase protocol.KeyPhaseBit + PacketNumberLen protocol.PacketNumberLen PacketNumber protocol.PacketNumber - - KeyPhase protocol.KeyPhaseBit } func (h *ExtendedHeader) parse(b *bytes.Reader, v protocol.VersionNumber) (*ExtendedHeader, error) { diff --git a/internal/wire/header.go b/internal/wire/header.go index 84ea33ce..061efc85 100644 --- a/internal/wire/header.go +++ b/internal/wire/header.go @@ -46,19 +46,20 @@ var errUnsupportedVersion = errors.New("unsupported version") // The Header is the version independent part of the header type Header struct { + IsLongHeader bool + typeByte byte + Type protocol.PacketType + Version protocol.VersionNumber SrcConnectionID protocol.ConnectionID DestConnectionID protocol.ConnectionID - IsLongHeader bool - Type protocol.PacketType - Length protocol.ByteCount + Length protocol.ByteCount Token []byte SupportedVersions []protocol.VersionNumber // sent in a Version Negotiation Packet OrigDestConnectionID protocol.ConnectionID // sent in the Retry packet - typeByte byte parsedLen protocol.ByteCount // how many bytes were read while parsing this header } diff --git a/internal/wire/stream_frame.go b/internal/wire/stream_frame.go index 3b1f76c2..0217cc83 100644 --- a/internal/wire/stream_frame.go +++ b/internal/wire/stream_frame.go @@ -13,10 +13,10 @@ import ( // A StreamFrame of QUIC type StreamFrame struct { StreamID protocol.StreamID - FinBit bool - DataLenPresent bool Offset protocol.ByteCount Data []byte + FinBit bool + DataLenPresent bool fromPool bool }