Skip to content

Commit 66cca33

Browse files
adityaa30mengelbart
authored andcommitted
Benchmark SendSideBWE.WriteRTCP
- Generate `rtcp.TransportLayerCC` packets with given seq numbers
1 parent e030b05 commit 66cca33

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

pkg/gcc/send_side_bwe_test.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package gcc
22

33
import (
4+
"math/rand"
45
"testing"
56

67
"github.com/pion/interceptor"
@@ -103,3 +104,34 @@ func TestSendSideBWE_ErrorOnWriteRTCPAtClosedState(t *testing.T) {
103104
require.ErrorIs(t, bwe.WriteRTCP(pkts, nil), ErrSendSideBWEClosed)
104105
require.Equal(t, bwe.isClosed(), true)
105106
}
107+
108+
func BenchmarkSendSideBWE_WriteRTCP(b *testing.B) {
109+
bwe, err := NewSendSideBWE(SendSideBWEPacer(NewNoOpPacer()))
110+
require.NoError(b, err)
111+
require.NotNil(b, bwe)
112+
113+
r := twcc.NewRecorder(5000)
114+
seq := uint16(0)
115+
arrivalTime := int64(0)
116+
117+
for i := 0; i < b.N; i++ {
118+
seqs := rand.Intn(1000) + 500
119+
for j := 0; j < seqs; j++ {
120+
seq++
121+
122+
if rand.Intn(5) == 0 {
123+
// skip this packet
124+
}
125+
126+
arrivalTime += int64(rtcp.TypeTCCDeltaScaleFactor * (rand.Intn(128) + 1))
127+
r.Record(5000, seq, arrivalTime)
128+
}
129+
130+
rtcpPackets := r.BuildFeedbackPacket()
131+
require.Equal(b, 1, len(rtcpPackets))
132+
133+
require.NoError(b, bwe.WriteRTCP(rtcpPackets, nil))
134+
}
135+
136+
require.NoError(b, bwe.Close())
137+
}

0 commit comments

Comments
 (0)