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

Function benchmark_seqdec_decode

zstd/seqdec_test.go:407–457  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

405}
406
407func benchmark_seqdec_decode(b *testing.B) {
408 zr := testCreateZipReader("testdata/seqs.zip", b)
409 tb := b
410 for _, tt := range zr.File {
411 var ref testSequence
412 if !ref.parse(tt.Name) {
413 tb.Skip("unable to parse:", tt.Name)
414 }
415 r, err := tt.Open()
416 if err != nil {
417 tb.Error(err)
418 return
419 }
420
421 seqData, err := io.ReadAll(r)
422 if err != nil {
423 tb.Error(err)
424 return
425 }
426 var buf = bytes.NewBuffer(seqData)
427 s := readDecoders(tb, buf, ref)
428 seqs := make([]seqVals, ref.n)
429
430 b.Run(tt.Name, func(b *testing.B) {
431 fatalIf := func(err error) {
432 if err != nil {
433 b.Fatal(err)
434 }
435 }
436 b.ReportAllocs()
437 b.ResetTimer()
438 t := time.Now()
439 decoded := 0
440 remain := uint(0)
441 for i := 0; i < b.N; i++ {
442 fatalIf(s.br.init(buf.Bytes()))
443 fatalIf(s.litLengths.init(s.br))
444 fatalIf(s.offsets.init(s.br))
445 fatalIf(s.matchLengths.init(s.br))
446 remain = s.br.remain()
447 err := s.decode(seqs)
448 if err != nil {
449 b.Fatal(err)
450 }
451 decoded += ref.n
452 }
453 b.ReportMetric(float64(decoded)/time.Since(t).Seconds(), "seq/s")
454 b.ReportMetric(float64(remain)/float64(s.nSeqs), "b/seq")
455 })
456 }
457}
458
459func Benchmark_seqdec_execute(b *testing.B) {
460 zr := testCreateZipReader("testdata/seqs.zip", b)

Callers 2

Benchmark_seqdec_decodeFunction · 0.85

Calls 11

parseMethod · 0.95
testCreateZipReaderFunction · 0.85
readDecodersFunction · 0.85
SkipMethod · 0.80
FatalMethod · 0.80
BytesMethod · 0.65
OpenMethod · 0.45
ErrorMethod · 0.45
initMethod · 0.45
remainMethod · 0.45
decodeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…