MCPcopy
hub / github.com/klauspost/compress / BenchmarkDecoder_DecoderSmall

Function BenchmarkDecoder_DecoderSmall

zstd/decoder_test.go:1197–1279  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

1195}
1196
1197func BenchmarkDecoder_DecoderSmall(b *testing.B) {
1198 zr := testCreateZipReader("testdata/benchdecoder.zip", b)
1199 dec, err := NewReader(nil, WithDecodeBuffersBelow(1<<30))
1200 if err != nil {
1201 b.Fatal(err)
1202 return
1203 }
1204 defer dec.Close()
1205 dec2, err := NewReader(nil, WithDecodeBuffersBelow(0))
1206 if err != nil {
1207 b.Fatal(err)
1208 return
1209 }
1210 defer dec2.Close()
1211 for _, tt := range zr.File {
1212 if !strings.HasSuffix(tt.Name, ".zst") {
1213 continue
1214 }
1215 b.Run(tt.Name, func(b *testing.B) {
1216 r, err := tt.Open()
1217 if err != nil {
1218 b.Fatal(err)
1219 }
1220 defer r.Close()
1221 in, err := io.ReadAll(r)
1222 if err != nil {
1223 b.Fatal(err)
1224 }
1225 // 2x
1226 in = append(in, in...)
1227 // 4x
1228 in = append(in, in...)
1229 // 8x
1230 in = append(in, in...)
1231
1232 err = dec.Reset(bytes.NewBuffer(in))
1233 if err != nil {
1234 b.Fatal(err)
1235 }
1236 got, err := io.ReadAll(dec)
1237 if err != nil {
1238 b.Fatal(err)
1239 }
1240 b.Run("buffered", func(b *testing.B) {
1241 b.SetBytes(int64(len(got)))
1242 b.ReportAllocs()
1243 b.ResetTimer()
1244 for i := 0; i < b.N; i++ {
1245 err = dec.Reset(bytes.NewBuffer(in))
1246 if err != nil {
1247 b.Fatal(err)
1248 }
1249 n, err := io.Copy(io.Discard, dec)
1250 if err != nil {
1251 b.Fatal(err)
1252 }
1253 if int(n) != len(got) {
1254 b.Fatalf("want %d, got %d", len(got), n)

Callers

nothing calls this directly

Calls 9

CloseMethod · 0.95
ResetMethod · 0.95
testCreateZipReaderFunction · 0.85
WithDecodeBuffersBelowFunction · 0.85
FatalMethod · 0.80
CopyMethod · 0.80
NewReaderFunction · 0.70
CloseMethod · 0.65
OpenMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…