MCPcopy Index your code
hub / github.com/klauspost/compress / benchmarkDecoderWithFile

Function benchmarkDecoderWithFile

zstd/decoder_test.go:1656–1783  ·  view source on GitHub ↗
(path string, b *testing.B)

Source from the content-addressed store, hash-verified

1654}
1655
1656func benchmarkDecoderWithFile(path string, b *testing.B) {
1657 _, err := os.Stat(path)
1658 if err != nil {
1659 if os.IsNotExist(err) {
1660 b.Skipf("Missing %s", path)
1661 return
1662 }
1663 b.Fatal(err)
1664 }
1665
1666 data, err := os.ReadFile(path)
1667 if err != nil {
1668 b.Fatal(err)
1669 }
1670 dec, err := NewReader(bytes.NewBuffer(data), WithDecoderLowmem(false), WithDecoderConcurrency(1))
1671 if err != nil {
1672 b.Fatal(err)
1673 }
1674 n, err := io.Copy(io.Discard, dec)
1675 if err != nil {
1676 b.Fatal(err)
1677 }
1678
1679 b.Run("multithreaded-writer", func(b *testing.B) {
1680 dec, err := NewReader(nil, WithDecoderLowmem(true))
1681 if err != nil {
1682 b.Fatal(err)
1683 }
1684 b.SetBytes(n)
1685 b.ReportAllocs()
1686 b.ResetTimer()
1687 for i := 0; i < b.N; i++ {
1688 err = dec.Reset(bytes.NewBuffer(data))
1689 if err != nil {
1690 b.Fatal(err)
1691 }
1692 _, err := io.CopyN(io.Discard, dec, n)
1693 if err != nil {
1694 b.Fatal(err)
1695 }
1696 }
1697 })
1698
1699 b.Run("multithreaded-writer-himem", func(b *testing.B) {
1700 dec, err := NewReader(nil, WithDecoderLowmem(false))
1701 if err != nil {
1702 b.Fatal(err)
1703 }
1704
1705 b.SetBytes(n)
1706 b.ReportAllocs()
1707 b.ResetTimer()
1708 for i := 0; i < b.N; i++ {
1709 err = dec.Reset(bytes.NewBuffer(data))
1710 if err != nil {
1711 b.Fatal(err)
1712 }
1713 _, err := io.CopyN(io.Discard, dec, n)

Callers 3

BenchmarkDecoderSilesiaFunction · 0.85
BenchmarkDecoderEnwik9Function · 0.85

Calls 7

ResetMethod · 0.95
WithDecoderLowmemFunction · 0.85
WithDecoderConcurrencyFunction · 0.85
FatalMethod · 0.80
CopyMethod · 0.80
NewReaderFunction · 0.70
StatMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…