|
1 | 1 | package gcc |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "fmt" |
4 | 5 | "math/rand" |
5 | 6 | "testing" |
6 | 7 |
|
@@ -106,32 +107,39 @@ func TestSendSideBWE_ErrorOnWriteRTCPAtClosedState(t *testing.T) { |
106 | 107 | } |
107 | 108 |
|
108 | 109 | func BenchmarkSendSideBWE_WriteRTCP(b *testing.B) { |
109 | | - bwe, err := NewSendSideBWE(SendSideBWEPacer(NewNoOpPacer())) |
110 | | - require.NoError(b, err) |
111 | | - require.NotNil(b, bwe) |
| 110 | + numSequencesPerTwccReport := []int{10, 100, 500, 1000} |
112 | 111 |
|
113 | | - r := twcc.NewRecorder(5000) |
114 | | - seq := uint16(0) |
115 | | - arrivalTime := int64(0) |
| 112 | + for _, count := range numSequencesPerTwccReport { |
| 113 | + b.Run(fmt.Sprintf("num_sequences=%d", count), func(b *testing.B) { |
| 114 | + bwe, err := NewSendSideBWE(SendSideBWEPacer(NewNoOpPacer())) |
| 115 | + require.NoError(b, err) |
| 116 | + require.NotNil(b, bwe) |
116 | 117 |
|
117 | | - for i := 0; i < b.N; i++ { |
118 | | - seqs := rand.Intn(1000) + 500 |
119 | | - for j := 0; j < seqs; j++ { |
120 | | - seq++ |
| 118 | + r := twcc.NewRecorder(5000) |
| 119 | + seq := uint16(0) |
| 120 | + arrivalTime := int64(0) |
121 | 121 |
|
122 | | - if rand.Intn(5) == 0 { |
123 | | - // skip this packet |
124 | | - } |
| 122 | + for i := 0; i < b.N; i++ { |
| 123 | + // nolint:gosec |
| 124 | + seqs := rand.Intn(count/2) + count // [count, count * 1.5) |
| 125 | + for j := 0; j < seqs; j++ { |
| 126 | + seq++ |
125 | 127 |
|
126 | | - arrivalTime += int64(rtcp.TypeTCCDeltaScaleFactor * (rand.Intn(128) + 1)) |
127 | | - r.Record(5000, seq, arrivalTime) |
128 | | - } |
| 128 | + if rand.Intn(5) == 0 { //nolint:gosec,staticcheck |
| 129 | + // skip this packet |
| 130 | + } |
129 | 131 |
|
130 | | - rtcpPackets := r.BuildFeedbackPacket() |
131 | | - require.Equal(b, 1, len(rtcpPackets)) |
| 132 | + arrivalTime += int64(rtcp.TypeTCCDeltaScaleFactor * (rand.Intn(128) + 1)) //nolint:gosec |
| 133 | + r.Record(5000, seq, arrivalTime) |
| 134 | + } |
132 | 135 |
|
133 | | - require.NoError(b, bwe.WriteRTCP(rtcpPackets, nil)) |
134 | | - } |
| 136 | + rtcpPackets := r.BuildFeedbackPacket() |
| 137 | + require.Equal(b, 1, len(rtcpPackets)) |
135 | 138 |
|
136 | | - require.NoError(b, bwe.Close()) |
| 139 | + require.NoError(b, bwe.WriteRTCP(rtcpPackets, nil)) |
| 140 | + } |
| 141 | + |
| 142 | + require.NoError(b, bwe.Close()) |
| 143 | + }) |
| 144 | + } |
137 | 145 | } |
0 commit comments