@@ -60,49 +60,49 @@ var (
6060
6161// Benchmark individual decoder functions
6262func BenchmarkDecodeOriginalEscape (b * testing.B ) {
63- for i := 0 ; i < b . N ; i ++ {
63+ for b . Loop () {
6464 _ = decodeEscaped (originalUnicodeData )
6565 }
6666}
6767
6868func BenchmarkDecodeCodePoint (b * testing.B ) {
69- for i := 0 ; i < b . N ; i ++ {
69+ for b . Loop () {
7070 _ = decodeCodePoint (codePointData )
7171 }
7272}
7373
7474func BenchmarkDecodeBraceEscape (b * testing.B ) {
75- for i := 0 ; i < b . N ; i ++ {
75+ for b . Loop () {
7676 _ = decodeBraceEscape (braceEscapeData )
7777 }
7878}
7979
8080func BenchmarkDecodeLongEscape (b * testing.B ) {
81- for i := 0 ; i < b . N ; i ++ {
81+ for b . Loop () {
8282 _ = decodeLongEscape (longEscapeData )
8383 }
8484}
8585
8686func BenchmarkDecodePerlEscape (b * testing.B ) {
87- for i := 0 ; i < b . N ; i ++ {
87+ for b . Loop () {
8888 _ = decodePerlEscape (perlEscapeData )
8989 }
9090}
9191
9292func BenchmarkDecodeCssEscape (b * testing.B ) {
93- for i := 0 ; i < b . N ; i ++ {
93+ for b . Loop () {
9494 _ = decodeCssEscape (cssEscapeData )
9595 }
9696}
9797
9898func BenchmarkDecodeHtmlEscape (b * testing.B ) {
99- for i := 0 ; i < b . N ; i ++ {
99+ for b . Loop () {
100100 _ = decodeHtmlEscape (htmlEscapeData )
101101 }
102102}
103103
104104func BenchmarkDecodePercentEscape (b * testing.B ) {
105- for i := 0 ; i < b . N ; i ++ {
105+ for b . Loop () {
106106 _ = decodePercentEscape (percentEscapeData )
107107 }
108108}
@@ -118,8 +118,7 @@ func BenchmarkFromChunk_OriginalFormat(b *testing.B) {
118118 decoder := & EscapedUnicode {}
119119 chunk := & sources.Chunk {Data : originalUnicodeData }
120120
121- b .ResetTimer ()
122- for i := 0 ; i < b .N ; i ++ {
121+ for b .Loop () {
123122 _ = decoder .FromChunk (chunk )
124123 }
125124}
@@ -128,8 +127,7 @@ func BenchmarkFromChunk_BraceFormat(b *testing.B) {
128127 decoder := & EscapedUnicode {}
129128 chunk := & sources.Chunk {Data : braceEscapeData }
130129
131- b .ResetTimer ()
132- for i := 0 ; i < b .N ; i ++ {
130+ for b .Loop () {
133131 _ = decoder .FromChunk (chunk )
134132 }
135133}
@@ -138,8 +136,7 @@ func BenchmarkFromChunk_LongFormat(b *testing.B) {
138136 decoder := & EscapedUnicode {}
139137 chunk := & sources.Chunk {Data : longEscapeData }
140138
141- b .ResetTimer ()
142- for i := 0 ; i < b .N ; i ++ {
139+ for b .Loop () {
143140 _ = decoder .FromChunk (chunk )
144141 }
145142}
@@ -148,8 +145,7 @@ func BenchmarkFromChunk_HtmlFormat(b *testing.B) {
148145 decoder := & EscapedUnicode {}
149146 chunk := & sources.Chunk {Data : htmlEscapeData }
150147
151- b .ResetTimer ()
152- for i := 0 ; i < b .N ; i ++ {
148+ for b .Loop () {
153149 _ = decoder .FromChunk (chunk )
154150 }
155151}
@@ -158,8 +154,7 @@ func BenchmarkFromChunk_MixedContent(b *testing.B) {
158154 decoder := & EscapedUnicode {}
159155 chunk := & sources.Chunk {Data : mixedContentData }
160156
161- b .ResetTimer ()
162- for i := 0 ; i < b .N ; i ++ {
157+ for b .Loop () {
163158 _ = decoder .FromChunk (chunk )
164159 }
165160}
@@ -168,8 +163,7 @@ func BenchmarkFromChunk_NoUnicode(b *testing.B) {
168163 decoder := & EscapedUnicode {}
169164 chunk := & sources.Chunk {Data : noUnicodeData }
170165
171- b .ResetTimer ()
172- for i := 0 ; i < b .N ; i ++ {
166+ for b .Loop () {
173167 _ = decoder .FromChunk (chunk )
174168 }
175169}
@@ -178,8 +172,7 @@ func BenchmarkFromChunk_LargeData(b *testing.B) {
178172 decoder := & EscapedUnicode {}
179173 chunk := & sources.Chunk {Data : largeData }
180174
181- b .ResetTimer ()
182- for i := 0 ; i < b .N ; i ++ {
175+ for b .Loop () {
183176 _ = decoder .FromChunk (chunk )
184177 }
185178}
@@ -188,8 +181,7 @@ func BenchmarkFromChunk_LargeData(b *testing.B) {
188181func BenchmarkRegexMatching_AllPatterns (b * testing.B ) {
189182 testData := mixedContentData
190183
191- b .ResetTimer ()
192- for i := 0 ; i < b .N ; i ++ {
184+ for b .Loop () {
193185 // Simulate the pattern matching in FromChunk
194186 _ = longEscapePat .Match (testData )
195187 _ = braceEscapePat .Match (testData )
@@ -206,8 +198,7 @@ func BenchmarkRegexMatching_AllPatterns(b *testing.B) {
206198func BenchmarkRegexMatching_NoMatch (b * testing.B ) {
207199 testData := noUnicodeData
208200
209- b .ResetTimer ()
210- for i := 0 ; i < b .N ; i ++ {
201+ for b .Loop () {
211202 // Simulate the pattern matching in FromChunk on data with no matches
212203 _ = longEscapePat .Match (testData )
213204 _ = braceEscapePat .Match (testData )
@@ -226,9 +217,8 @@ func BenchmarkFromChunk_MemoryAllocation(b *testing.B) {
226217 decoder := & EscapedUnicode {}
227218 chunk := & sources.Chunk {Data : mixedContentData }
228219
229- b .ResetTimer ()
230220 b .ReportAllocs ()
231- for i := 0 ; i < b . N ; i ++ {
221+ for b . Loop () {
232222 result := decoder .FromChunk (chunk )
233223 if result != nil {
234224 // Prevent compiler optimization
0 commit comments