From 94e812df12ad87199f12545540873ef09285f9bb Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Thu, 1 Feb 2018 13:33:25 +0800 Subject: [PATCH] optimize deleting packets from the packet history DeleteBelow is often called with the same value, so we can improve the performance by introducing a short path for this case. --- ackhandler/received_packet_history.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ackhandler/received_packet_history.go b/ackhandler/received_packet_history.go index b8321f60..ba119544 100644 --- a/ackhandler/received_packet_history.go +++ b/ackhandler/received_packet_history.go @@ -76,7 +76,10 @@ func (h *receivedPacketHistory) ReceivedPacket(p protocol.PacketNumber) error { // DeleteBelow deletes all entries below (but not including) p func (h *receivedPacketHistory) DeleteBelow(p protocol.PacketNumber) { - h.lowestInReceivedPacketNumbers = utils.MaxPacketNumber(h.lowestInReceivedPacketNumbers, p) + if p <= h.lowestInReceivedPacketNumbers { + return + } + h.lowestInReceivedPacketNumbers = p nextEl := h.ranges.Front() for el := h.ranges.Front(); nextEl != nil; el = nextEl {