valyala / gozstd

go wrapper for zstd
MIT License
420 stars 60 forks source link

dicts: Add option to use the *_byReference variants at creation time #60

Open coxley opened 2 months ago

coxley commented 2 months ago

Summary

Related issue: #59

This adds two additional functions to create a CDict or DDict:

My particular use-case is having hundreds (~500-2000) of dictionaries cached locally in-memory, and not wanting to potentially have three copies of each.

To mitigate the risk of the input bytes being garbage collected or moved, they get pinned and unpinned oncegozstd.CDict and gozstd.DDict are released. There's still risk of users mutating the input, but this is advised against in the documentation. Users of this feature implicitly accept the risks of optimization.

Test Plan

I've added two types of tests:

I'm happy to add more if you think it reasonable, but I think this stresses the right things: making sure that the same underlying bytes can be used concurrently with CDict and DDict.

Command Output

``` > make test CGO_ENABLED=1 GOEXPERIMENT=cgocheck2 go test -v === RUN TestCDictEmpty --- PASS: TestCDictEmpty (0.00s) === RUN TestDDictEmpty --- PASS: TestDDictEmpty (0.00s) === RUN TestCDictCreateRelease --- PASS: TestCDictCreateRelease (0.01s) === RUN TestCDictByRefCreateRelease --- PASS: TestCDictByRefCreateRelease (0.01s) === RUN TestDDictCreateRelease --- PASS: TestDDictCreateRelease (0.01s) === RUN TestDDictByRefCreateRelease --- PASS: TestDDictByRefCreateRelease (0.01s) === RUN TestBuildDict === RUN TestBuildDict/samples_0 === RUN TestBuildDict/samples_0/desiredDictLen_20 === RUN TestBuildDict/samples_0/desiredDictLen_256 === RUN TestBuildDict/samples_0/desiredDictLen_1000 === RUN TestBuildDict/samples_0/desiredDictLen_10000 === RUN TestBuildDict/samples_1 === RUN TestBuildDict/samples_1/desiredDictLen_20 === RUN TestBuildDict/samples_1/desiredDictLen_256 === RUN TestBuildDict/samples_1/desiredDictLen_1000 === RUN TestBuildDict/samples_1/desiredDictLen_10000 === RUN TestBuildDict/samples_10 === RUN TestBuildDict/samples_10/desiredDictLen_20 === RUN TestBuildDict/samples_10/desiredDictLen_256 === RUN TestBuildDict/samples_10/desiredDictLen_1000 === RUN TestBuildDict/samples_10/desiredDictLen_10000 === RUN TestBuildDict/samples_100 === RUN TestBuildDict/samples_100/desiredDictLen_20 === RUN TestBuildDict/samples_100/desiredDictLen_256 === RUN TestBuildDict/samples_100/desiredDictLen_1000 === RUN TestBuildDict/samples_100/desiredDictLen_10000 === RUN TestBuildDict/samples_1000 === RUN TestBuildDict/samples_1000/desiredDictLen_20 === RUN TestBuildDict/samples_1000/desiredDictLen_256 === RUN TestBuildDict/samples_1000/desiredDictLen_1000 === RUN TestBuildDict/samples_1000/desiredDictLen_10000 --- PASS: TestBuildDict (0.16s) --- PASS: TestBuildDict/samples_0 (0.02s) --- PASS: TestBuildDict/samples_0/desiredDictLen_20 (0.00s) --- PASS: TestBuildDict/samples_0/desiredDictLen_256 (0.00s) --- PASS: TestBuildDict/samples_0/desiredDictLen_1000 (0.01s) --- PASS: TestBuildDict/samples_0/desiredDictLen_10000 (0.01s) --- PASS: TestBuildDict/samples_1 (0.02s) --- PASS: TestBuildDict/samples_1/desiredDictLen_20 (0.00s) --- PASS: TestBuildDict/samples_1/desiredDictLen_256 (0.00s) --- PASS: TestBuildDict/samples_1/desiredDictLen_1000 (0.01s) --- PASS: TestBuildDict/samples_1/desiredDictLen_10000 (0.01s) --- PASS: TestBuildDict/samples_10 (0.02s) --- PASS: TestBuildDict/samples_10/desiredDictLen_20 (0.00s) --- PASS: TestBuildDict/samples_10/desiredDictLen_256 (0.00s) --- PASS: TestBuildDict/samples_10/desiredDictLen_1000 (0.01s) --- PASS: TestBuildDict/samples_10/desiredDictLen_10000 (0.01s) --- PASS: TestBuildDict/samples_100 (0.03s) --- PASS: TestBuildDict/samples_100/desiredDictLen_20 (0.00s) --- PASS: TestBuildDict/samples_100/desiredDictLen_256 (0.00s) --- PASS: TestBuildDict/samples_100/desiredDictLen_1000 (0.01s) --- PASS: TestBuildDict/samples_100/desiredDictLen_10000 (0.01s) --- PASS: TestBuildDict/samples_1000 (0.06s) --- PASS: TestBuildDict/samples_1000/desiredDictLen_20 (0.01s) --- PASS: TestBuildDict/samples_1000/desiredDictLen_256 (0.01s) --- PASS: TestBuildDict/samples_1000/desiredDictLen_1000 (0.01s) --- PASS: TestBuildDict/samples_1000/desiredDictLen_10000 (0.03s) === RUN TestDecompressSmallBlockWithoutSingleSegmentFlag === RUN TestDecompressSmallBlockWithoutSingleSegmentFlag/empty-dst-buf === RUN TestDecompressSmallBlockWithoutSingleSegmentFlag/small-dst-buf === RUN TestDecompressSmallBlockWithoutSingleSegmentFlag/enough-dst-buf --- PASS: TestDecompressSmallBlockWithoutSingleSegmentFlag (0.00s) --- PASS: TestDecompressSmallBlockWithoutSingleSegmentFlag/empty-dst-buf (0.00s) --- PASS: TestDecompressSmallBlockWithoutSingleSegmentFlag/small-dst-buf (0.00s) --- PASS: TestDecompressSmallBlockWithoutSingleSegmentFlag/enough-dst-buf (0.00s) === RUN TestCompressDecompressDistinctConcurrentDicts --- PASS: TestCompressDecompressDistinctConcurrentDicts (0.03s) === RUN TestCompressDecompressDistinctConcurrentDictsByRef --- PASS: TestCompressDecompressDistinctConcurrentDictsByRef (0.03s) === RUN TestCompressDecompressDict --- PASS: TestCompressDecompressDict (0.01s) === RUN TestDecompressInvalidData --- PASS: TestDecompressInvalidData (0.00s) === RUN TestCompressLevel --- PASS: TestCompressLevel (0.00s) === RUN TestCompressDecompress --- PASS: TestCompressDecompress (0.05s) === RUN TestCompressDecompressMultiFrames --- PASS: TestCompressDecompressMultiFrames (0.00s) === RUN TestReaderReadCompressBomb --- PASS: TestReaderReadCompressBomb (0.00s) === RUN TestReaderWriteTo --- PASS: TestReaderWriteTo (0.00s) === RUN TestReaderDict --- PASS: TestReaderDict (0.06s) === RUN TestReaderMultiFrames --- PASS: TestReaderMultiFrames (0.00s) === RUN TestReaderBadUnderlyingReader --- PASS: TestReaderBadUnderlyingReader (0.00s) === RUN TestReaderInvalidData --- PASS: TestReaderInvalidData (0.00s) === RUN TestReader --- PASS: TestReader (0.03s) === RUN TestStreamCompressDecompress --- PASS: TestStreamCompressDecompress (0.00s) === RUN TestStreamCompressDecompressLevel === RUN TestStreamCompressDecompressLevel/level_0 === RUN TestStreamCompressDecompressLevel/level_1 === RUN TestStreamCompressDecompressLevel/level_2 === RUN TestStreamCompressDecompressLevel/level_3 === RUN TestStreamCompressDecompressLevel/level_4 === RUN TestStreamCompressDecompressLevel/level_5 === RUN TestStreamCompressDecompressLevel/level_6 === RUN TestStreamCompressDecompressLevel/level_7 === RUN TestStreamCompressDecompressLevel/level_8 === RUN TestStreamCompressDecompressLevel/level_9 === RUN TestStreamCompressDecompressLevel/level_10 === RUN TestStreamCompressDecompressLevel/level_11 === RUN TestStreamCompressDecompressLevel/level_12 === RUN TestStreamCompressDecompressLevel/level_13 === RUN TestStreamCompressDecompressLevel/level_14 === RUN TestStreamCompressDecompressLevel/level_15 === RUN TestStreamCompressDecompressLevel/level_16 === RUN TestStreamCompressDecompressLevel/level_17 === RUN TestStreamCompressDecompressLevel/level_18 === RUN TestStreamCompressDecompressLevel/level_19 --- PASS: TestStreamCompressDecompressLevel (0.29s) --- PASS: TestStreamCompressDecompressLevel/level_0 (0.00s) --- PASS: TestStreamCompressDecompressLevel/level_1 (0.00s) --- PASS: TestStreamCompressDecompressLevel/level_2 (0.00s) --- PASS: TestStreamCompressDecompressLevel/level_3 (0.00s) --- PASS: TestStreamCompressDecompressLevel/level_4 (0.00s) --- PASS: TestStreamCompressDecompressLevel/level_5 (0.00s) --- PASS: TestStreamCompressDecompressLevel/level_6 (0.00s) --- PASS: TestStreamCompressDecompressLevel/level_7 (0.00s) --- PASS: TestStreamCompressDecompressLevel/level_8 (0.00s) --- PASS: TestStreamCompressDecompressLevel/level_9 (0.00s) --- PASS: TestStreamCompressDecompressLevel/level_10 (0.01s) --- PASS: TestStreamCompressDecompressLevel/level_11 (0.01s) --- PASS: TestStreamCompressDecompressLevel/level_12 (0.01s) --- PASS: TestStreamCompressDecompressLevel/level_13 (0.01s) --- PASS: TestStreamCompressDecompressLevel/level_14 (0.03s) --- PASS: TestStreamCompressDecompressLevel/level_15 (0.06s) --- PASS: TestStreamCompressDecompressLevel/level_16 (0.01s) --- PASS: TestStreamCompressDecompressLevel/level_17 (0.03s) --- PASS: TestStreamCompressDecompressLevel/level_18 (0.01s) --- PASS: TestStreamCompressDecompressLevel/level_19 (0.09s) === RUN TestStreamCompressDecompressDict --- PASS: TestStreamCompressDecompressDict (0.02s) === RUN TestWriterReadFromWithEOF --- PASS: TestWriterReadFromWithEOF (0.00s) === RUN TestWriterReadFrom --- PASS: TestWriterReadFrom (0.00s) === RUN TestNewWriterLevel --- PASS: TestNewWriterLevel (0.23s) === RUN TestWriterDict --- PASS: TestWriterDict (0.05s) === RUN TestWriterWindowLog --- PASS: TestWriterWindowLog (2.41s) === RUN TestWriterResetWriterParams --- PASS: TestWriterResetWriterParams (0.08s) === RUN TestWriterMultiFrames --- PASS: TestWriterMultiFrames (0.00s) === RUN TestWriterBadUnderlyingWriter --- PASS: TestWriterBadUnderlyingWriter (0.00s) === RUN TestWriter --- PASS: TestWriter (0.03s) === RUN TestWriterBig --- PASS: TestWriterBig (0.05s) === RUN ExampleBuildDict --- PASS: ExampleBuildDict (0.01s) === RUN ExampleCompress_simple --- PASS: ExampleCompress_simple (0.00s) === RUN ExampleDecompress_simple --- PASS: ExampleDecompress_simple (0.00s) === RUN ExampleCompress_noAllocs --- PASS: ExampleCompress_noAllocs (0.00s) === RUN ExampleDecompress_noAllocs --- PASS: ExampleDecompress_noAllocs (0.00s) === RUN ExampleReader --- PASS: ExampleReader (0.00s) === RUN ExampleReader_Reset --- PASS: ExampleReader_Reset (0.00s) === RUN ExampleWriter --- PASS: ExampleWriter (0.00s) === RUN ExampleWriter_Flush --- PASS: ExampleWriter_Flush (0.00s) === RUN ExampleWriter_Reset --- PASS: ExampleWriter_Reset (0.00s) === RUN ExampleWriterParams --- PASS: ExampleWriterParams (0.00s) PASS ok github.com/valyala/gozstd 3.771s ```

Full Benchmark Output

``` > go test -bench=. -benchmem ./... goos: darwin goarch: arm64 pkg: github.com/valyala/gozstd BenchmarkDecompressDict/blockSize_1/level_3-10 58799746 19.66 ns/op 50.85 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_1/level_3-10 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 BenchmarkDecompressDict/blockSize_1/level_5-10 68347509 18.66 ns/op 53.60 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_1/level_5-10 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 BenchmarkDecompressDict/blockSize_1/level_10-10 72008820 18.03 ns/op 55.45 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_1/level_10-10 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 BenchmarkDecompressDict/blockSize_10/level_3-10 51326011 22.59 ns/op 442.58 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_10/level_3-10 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 BenchmarkDecompressDict/blockSize_10/level_5-10 57747834 19.21 ns/op 520.49 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_10/level_5-10 gozstd_timing_test.go:50: compressionRatio: 0.434783 gozstd_timing_test.go:50: compressionRatio: 0.434783 gozstd_timing_test.go:50: compressionRatio: 0.434783 gozstd_timing_test.go:50: compressionRatio: 0.434783 gozstd_timing_test.go:50: compressionRatio: 0.434783 BenchmarkDecompressDict/blockSize_10/level_10-10 51152892 22.04 ns/op 453.78 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_10/level_10-10 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 BenchmarkDecompressDict/blockSize_100/level_3-10 68849778 17.13 ns/op 5836.93 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_100/level_3-10 gozstd_timing_test.go:50: compressionRatio: 5.000000 gozstd_timing_test.go:50: compressionRatio: 5.000000 gozstd_timing_test.go:50: compressionRatio: 5.000000 gozstd_timing_test.go:50: compressionRatio: 5.000000 gozstd_timing_test.go:50: compressionRatio: 5.000000 BenchmarkDecompressDict/blockSize_100/level_5-10 61840129 17.98 ns/op 5560.70 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_100/level_5-10 gozstd_timing_test.go:50: compressionRatio: 4.347826 gozstd_timing_test.go:50: compressionRatio: 4.347826 gozstd_timing_test.go:50: compressionRatio: 4.347826 gozstd_timing_test.go:50: compressionRatio: 4.347826 gozstd_timing_test.go:50: compressionRatio: 4.347826 BenchmarkDecompressDict/blockSize_100/level_10-10 61295113 18.99 ns/op 5265.01 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_100/level_10-10 gozstd_timing_test.go:50: compressionRatio: 4.166667 gozstd_timing_test.go:50: compressionRatio: 4.166667 gozstd_timing_test.go:50: compressionRatio: 4.166667 gozstd_timing_test.go:50: compressionRatio: 4.166667 gozstd_timing_test.go:50: compressionRatio: 4.166667 BenchmarkDecompressDict/blockSize_1000/level_3-10 10819798 110.7 ns/op 9030.58 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_1000/level_3-10 gozstd_timing_test.go:50: compressionRatio: 4.255319 gozstd_timing_test.go:50: compressionRatio: 4.255319 gozstd_timing_test.go:50: compressionRatio: 4.255319 gozstd_timing_test.go:50: compressionRatio: 4.255319 gozstd_timing_test.go:50: compressionRatio: 4.255319 BenchmarkDecompressDict/blockSize_1000/level_5-10 4322536 287.1 ns/op 3483.14 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_1000/level_5-10 gozstd_timing_test.go:50: compressionRatio: 6.097561 gozstd_timing_test.go:50: compressionRatio: 6.097561 gozstd_timing_test.go:50: compressionRatio: 6.097561 gozstd_timing_test.go:50: compressionRatio: 6.097561 gozstd_timing_test.go:50: compressionRatio: 6.097561 BenchmarkDecompressDict/blockSize_1000/level_10-10 4217209 284.6 ns/op 3513.50 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_1000/level_10-10 gozstd_timing_test.go:50: compressionRatio: 5.847953 gozstd_timing_test.go:50: compressionRatio: 5.847953 gozstd_timing_test.go:50: compressionRatio: 5.847953 gozstd_timing_test.go:50: compressionRatio: 5.847953 gozstd_timing_test.go:50: compressionRatio: 5.847953 BenchmarkDecompressDict/blockSize_10000/level_3-10 1000000 1050 ns/op 9526.67 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_10000/level_3-10 gozstd_timing_test.go:50: compressionRatio: 4.081633 gozstd_timing_test.go:50: compressionRatio: 4.081633 gozstd_timing_test.go:50: compressionRatio: 4.081633 gozstd_timing_test.go:50: compressionRatio: 4.081633 BenchmarkDecompressDict/blockSize_10000/level_5-10 865293 1209 ns/op 8274.49 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_10000/level_5-10 gozstd_timing_test.go:50: compressionRatio: 6.648936 gozstd_timing_test.go:50: compressionRatio: 6.648936 gozstd_timing_test.go:50: compressionRatio: 6.648936 gozstd_timing_test.go:50: compressionRatio: 6.648936 BenchmarkDecompressDict/blockSize_10000/level_10-10 938085 1190 ns/op 8404.11 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_10000/level_10-10 gozstd_timing_test.go:50: compressionRatio: 8.000000 gozstd_timing_test.go:50: compressionRatio: 8.000000 gozstd_timing_test.go:50: compressionRatio: 8.000000 gozstd_timing_test.go:50: compressionRatio: 8.000000 BenchmarkDecompressDict/blockSize_100000/level_3-10 119624 9689 ns/op 10320.72 MB/s 17 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_100000/level_3-10 gozstd_timing_test.go:50: compressionRatio: 5.651314 gozstd_timing_test.go:50: compressionRatio: 5.651314 gozstd_timing_test.go:50: compressionRatio: 5.651314 gozstd_timing_test.go:50: compressionRatio: 5.651314 BenchmarkDecompressDict/blockSize_100000/level_5-10 119250 9489 ns/op 10538.64 MB/s 17 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_100000/level_5-10 gozstd_timing_test.go:50: compressionRatio: 5.755396 gozstd_timing_test.go:50: compressionRatio: 5.755396 gozstd_timing_test.go:50: compressionRatio: 5.755396 gozstd_timing_test.go:50: compressionRatio: 5.755396 BenchmarkDecompressDict/blockSize_100000/level_10-10 136354 8506 ns/op 11756.74 MB/s 15 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_100000/level_10-10 gozstd_timing_test.go:50: compressionRatio: 7.328692 gozstd_timing_test.go:50: compressionRatio: 7.328692 gozstd_timing_test.go:50: compressionRatio: 7.328692 gozstd_timing_test.go:50: compressionRatio: 7.328692 BenchmarkDecompressDict/blockSize_300000/level_3-10 44865 25645 ns/op 11697.98 MB/s 67 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_300000/level_3-10 gozstd_timing_test.go:50: compressionRatio: 4.937784 gozstd_timing_test.go:50: compressionRatio: 4.937784 gozstd_timing_test.go:50: compressionRatio: 4.937784 gozstd_timing_test.go:50: compressionRatio: 4.937784 BenchmarkDecompressDict/blockSize_300000/level_5-10 39726 29879 ns/op 10040.35 MB/s 76 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_300000/level_5-10 gozstd_timing_test.go:50: compressionRatio: 4.450642 gozstd_timing_test.go:50: compressionRatio: 4.450642 gozstd_timing_test.go:50: compressionRatio: 4.450642 gozstd_timing_test.go:50: compressionRatio: 4.450642 BenchmarkDecompressDict/blockSize_300000/level_10-10 45374 24729 ns/op 12131.38 MB/s 66 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDict/blockSize_300000/level_10-10 gozstd_timing_test.go:50: compressionRatio: 7.193210 gozstd_timing_test.go:50: compressionRatio: 7.193210 gozstd_timing_test.go:50: compressionRatio: 7.193210 gozstd_timing_test.go:50: compressionRatio: 7.193210 BenchmarkDecompressDictByRef/blockSize_1/level_3-10 59149357 21.39 ns/op 46.75 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_1/level_3-10 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 BenchmarkDecompressDictByRef/blockSize_1/level_5-10 66874568 22.24 ns/op 44.97 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_1/level_5-10 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 BenchmarkDecompressDictByRef/blockSize_1/level_10-10 63507973 19.04 ns/op 52.52 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_1/level_10-10 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 gozstd_timing_test.go:50: compressionRatio: 0.071429 BenchmarkDecompressDictByRef/blockSize_10/level_3-10 52190838 25.38 ns/op 393.96 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_10/level_3-10 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 BenchmarkDecompressDictByRef/blockSize_10/level_5-10 55748263 22.37 ns/op 446.99 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_10/level_5-10 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 BenchmarkDecompressDictByRef/blockSize_10/level_10-10 51998888 23.95 ns/op 417.55 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_10/level_10-10 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 gozstd_timing_test.go:50: compressionRatio: 0.500000 BenchmarkDecompressDictByRef/blockSize_100/level_3-10 60113337 17.32 ns/op 5774.52 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_100/level_3-10 gozstd_timing_test.go:50: compressionRatio: 5.000000 gozstd_timing_test.go:50: compressionRatio: 5.000000 gozstd_timing_test.go:50: compressionRatio: 5.000000 gozstd_timing_test.go:50: compressionRatio: 5.000000 gozstd_timing_test.go:50: compressionRatio: 5.000000 BenchmarkDecompressDictByRef/blockSize_100/level_5-10 58738826 19.58 ns/op 5107.51 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_100/level_5-10 gozstd_timing_test.go:50: compressionRatio: 4.000000 gozstd_timing_test.go:50: compressionRatio: 4.000000 gozstd_timing_test.go:50: compressionRatio: 4.000000 gozstd_timing_test.go:50: compressionRatio: 4.000000 gozstd_timing_test.go:50: compressionRatio: 4.000000 BenchmarkDecompressDictByRef/blockSize_100/level_10-10 60992137 17.48 ns/op 5721.64 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_100/level_10-10 gozstd_timing_test.go:50: compressionRatio: 5.000000 gozstd_timing_test.go:50: compressionRatio: 5.000000 gozstd_timing_test.go:50: compressionRatio: 5.000000 gozstd_timing_test.go:50: compressionRatio: 5.000000 gozstd_timing_test.go:50: compressionRatio: 5.000000 BenchmarkDecompressDictByRef/blockSize_1000/level_3-10 15742263 78.63 ns/op 12718.07 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_1000/level_3-10 gozstd_timing_test.go:50: compressionRatio: 3.003003 gozstd_timing_test.go:50: compressionRatio: 3.003003 gozstd_timing_test.go:50: compressionRatio: 3.003003 gozstd_timing_test.go:50: compressionRatio: 3.003003 gozstd_timing_test.go:50: compressionRatio: 3.003003 BenchmarkDecompressDictByRef/blockSize_1000/level_5-10 4217052 293.1 ns/op 3411.57 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_1000/level_5-10 gozstd_timing_test.go:50: compressionRatio: 5.405405 gozstd_timing_test.go:50: compressionRatio: 5.405405 gozstd_timing_test.go:50: compressionRatio: 5.405405 gozstd_timing_test.go:50: compressionRatio: 5.405405 gozstd_timing_test.go:50: compressionRatio: 5.405405 BenchmarkDecompressDictByRef/blockSize_1000/level_10-10 4201056 284.3 ns/op 3517.50 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_1000/level_10-10 gozstd_timing_test.go:50: compressionRatio: 6.802721 gozstd_timing_test.go:50: compressionRatio: 6.802721 gozstd_timing_test.go:50: compressionRatio: 6.802721 gozstd_timing_test.go:50: compressionRatio: 6.802721 gozstd_timing_test.go:50: compressionRatio: 6.802721 BenchmarkDecompressDictByRef/blockSize_10000/level_3-10 1000000 1035 ns/op 9658.93 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_10000/level_3-10 gozstd_timing_test.go:50: compressionRatio: 2.968240 gozstd_timing_test.go:50: compressionRatio: 2.968240 gozstd_timing_test.go:50: compressionRatio: 2.968240 gozstd_timing_test.go:50: compressionRatio: 2.968240 BenchmarkDecompressDictByRef/blockSize_10000/level_5-10 912402 1200 ns/op 8331.94 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_10000/level_5-10 gozstd_timing_test.go:50: compressionRatio: 6.775068 gozstd_timing_test.go:50: compressionRatio: 6.775068 gozstd_timing_test.go:50: compressionRatio: 6.775068 gozstd_timing_test.go:50: compressionRatio: 6.775068 BenchmarkDecompressDictByRef/blockSize_10000/level_10-10 1070834 1136 ns/op 8799.17 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_10000/level_10-10 gozstd_timing_test.go:50: compressionRatio: 8.216927 gozstd_timing_test.go:50: compressionRatio: 8.216927 gozstd_timing_test.go:50: compressionRatio: 8.216927 gozstd_timing_test.go:50: compressionRatio: 8.216927 gozstd_timing_test.go:50: compressionRatio: 8.216927 BenchmarkDecompressDictByRef/blockSize_100000/level_3-10 117387 9403 ns/op 10635.34 MB/s 18 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_100000/level_3-10 gozstd_timing_test.go:50: compressionRatio: 5.663156 gozstd_timing_test.go:50: compressionRatio: 5.663156 gozstd_timing_test.go:50: compressionRatio: 5.663156 gozstd_timing_test.go:50: compressionRatio: 5.663156 BenchmarkDecompressDictByRef/blockSize_100000/level_5-10 129529 9552 ns/op 10468.95 MB/s 16 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_100000/level_5-10 gozstd_timing_test.go:50: compressionRatio: 6.130080 gozstd_timing_test.go:50: compressionRatio: 6.130080 gozstd_timing_test.go:50: compressionRatio: 6.130080 gozstd_timing_test.go:50: compressionRatio: 6.130080 BenchmarkDecompressDictByRef/blockSize_100000/level_10-10 141172 8544 ns/op 11703.69 MB/s 15 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_100000/level_10-10 gozstd_timing_test.go:50: compressionRatio: 7.368111 gozstd_timing_test.go:50: compressionRatio: 7.368111 gozstd_timing_test.go:50: compressionRatio: 7.368111 gozstd_timing_test.go:50: compressionRatio: 7.368111 BenchmarkDecompressDictByRef/blockSize_300000/level_3-10 45314 26058 ns/op 11512.60 MB/s 67 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_300000/level_3-10 gozstd_timing_test.go:50: compressionRatio: 4.943480 gozstd_timing_test.go:50: compressionRatio: 4.943480 gozstd_timing_test.go:50: compressionRatio: 4.943480 gozstd_timing_test.go:50: compressionRatio: 4.943480 BenchmarkDecompressDictByRef/blockSize_300000/level_5-10 39554 31841 ns/op 9421.92 MB/s 76 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_300000/level_5-10 gozstd_timing_test.go:50: compressionRatio: 4.448333 gozstd_timing_test.go:50: compressionRatio: 4.448333 gozstd_timing_test.go:50: compressionRatio: 4.448333 gozstd_timing_test.go:50: compressionRatio: 4.448333 BenchmarkDecompressDictByRef/blockSize_300000/level_10-10 48345 27077 ns/op 11079.52 MB/s 62 B/op 0 allocs/op --- BENCH: BenchmarkDecompressDictByRef/blockSize_300000/level_10-10 gozstd_timing_test.go:50: compressionRatio: 7.199079 gozstd_timing_test.go:50: compressionRatio: 7.199079 gozstd_timing_test.go:50: compressionRatio: 7.199079 gozstd_timing_test.go:50: compressionRatio: 7.199079 BenchmarkCompressDict/blockSize_1/level_3-10 45646882 26.31 ns/op 38.00 MB/s 0 B/op 0 allocs/op BenchmarkCompressDict/blockSize_1/level_5-10 38136249 30.30 ns/op 33.00 MB/s 0 B/op 0 allocs/op BenchmarkCompressDict/blockSize_1/level_10-10 42246888 27.31 ns/op 36.61 MB/s 0 B/op 0 allocs/op BenchmarkCompressDict/blockSize_10/level_3-10 11924122 103.1 ns/op 97.03 MB/s 0 B/op 0 allocs/op BenchmarkCompressDict/blockSize_10/level_5-10 10563769 107.2 ns/op 93.24 MB/s 0 B/op 0 allocs/op BenchmarkCompressDict/blockSize_10/level_10-10 11201661 107.6 ns/op 92.97 MB/s 0 B/op 0 allocs/op BenchmarkCompressDict/blockSize_100/level_3-10 11782600 119.8 ns/op 834.42 MB/s 0 B/op 0 allocs/op BenchmarkCompressDict/blockSize_100/level_5-10 9689545 124.4 ns/op 803.62 MB/s 0 B/op 0 allocs/op BenchmarkCompressDict/blockSize_100/level_10-10 11936562 101.3 ns/op 986.70 MB/s 0 B/op 0 allocs/op BenchmarkCompressDict/blockSize_1000/level_3-10 4949862 240.3 ns/op 4161.98 MB/s 0 B/op 0 allocs/op BenchmarkCompressDict/blockSize_1000/level_5-10 1469346 829.5 ns/op 1205.51 MB/s 0 B/op 0 allocs/op BenchmarkCompressDict/blockSize_1000/level_10-10 676926 1680 ns/op 595.37 MB/s 0 B/op 0 allocs/op BenchmarkCompressDict/blockSize_10000/level_3-10 429900 2783 ns/op 3593.86 MB/s 0 B/op 0 allocs/op BenchmarkCompressDict/blockSize_10000/level_5-10 171814 7005 ns/op 1427.56 MB/s 0 B/op 0 allocs/op BenchmarkCompressDict/blockSize_10000/level_10-10 68016 17113 ns/op 584.36 MB/s 1 B/op 0 allocs/op BenchmarkCompressDict/blockSize_100000/level_3-10 45840 26248 ns/op 3809.87 MB/s 27 B/op 0 allocs/op BenchmarkCompressDict/blockSize_100000/level_5-10 17262 65060 ns/op 1537.04 MB/s 72 B/op 0 allocs/op BenchmarkCompressDict/blockSize_100000/level_10-10 9925 111574 ns/op 896.27 MB/s 122 B/op 0 allocs/op BenchmarkCompressDict/blockSize_300000/level_3-10 11946 98656 ns/op 3040.88 MB/s 308 B/op 0 allocs/op BenchmarkCompressDict/blockSize_300000/level_5-10 5706 185986 ns/op 1613.03 MB/s 661 B/op 0 allocs/op BenchmarkCompressDict/blockSize_300000/level_10-10 1748 639252 ns/op 469.30 MB/s 2017 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_1/level_3-10 37653211 27.70 ns/op 36.09 MB/s 0 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_1/level_5-10 44543155 27.87 ns/op 35.88 MB/s 0 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_1/level_10-10 45110096 26.45 ns/op 37.81 MB/s 0 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_10/level_3-10 11643537 103.5 ns/op 96.65 MB/s 0 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_10/level_5-10 11384451 110.9 ns/op 90.21 MB/s 0 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_10/level_10-10 10293279 114.5 ns/op 87.32 MB/s 0 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_100/level_3-10 11576036 100.2 ns/op 997.57 MB/s 0 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_100/level_5-10 13171288 90.20 ns/op 1108.66 MB/s 0 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_100/level_10-10 10040517 112.2 ns/op 891.29 MB/s 0 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_1000/level_3-10 5092779 232.8 ns/op 4295.42 MB/s 0 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_1000/level_5-10 1418889 841.8 ns/op 1187.90 MB/s 0 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_1000/level_10-10 702036 1515 ns/op 660.05 MB/s 0 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_10000/level_3-10 401656 2787 ns/op 3588.39 MB/s 0 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_10000/level_5-10 175604 6721 ns/op 1487.85 MB/s 0 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_10000/level_10-10 72402 16627 ns/op 601.44 MB/s 1 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_100000/level_3-10 44686 27248 ns/op 3670.06 MB/s 28 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_100000/level_5-10 18452 64524 ns/op 1549.81 MB/s 66 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_100000/level_10-10 9010 111749 ns/op 894.86 MB/s 134 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_300000/level_3-10 12112 102105 ns/op 2938.16 MB/s 304 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_300000/level_5-10 5697 179225 ns/op 1673.87 MB/s 662 B/op 0 allocs/op BenchmarkCompressDictByRef/blockSize_300000/level_10-10 1848 601000 ns/op 499.17 MB/s 1908 B/op 0 allocs/op BenchmarkCompress/blockSize_1/level_3-10 65246940 17.18 ns/op 58.22 MB/s 0 B/op 0 allocs/op BenchmarkCompress/blockSize_1/level_5-10 55139139 21.03 ns/op 47.56 MB/s 0 B/op 0 allocs/op BenchmarkCompress/blockSize_1/level_10-10 66177076 17.40 ns/op 57.48 MB/s 0 B/op 0 allocs/op BenchmarkCompress/blockSize_10/level_3-10 40016006 27.92 ns/op 358.11 MB/s 0 B/op 0 allocs/op BenchmarkCompress/blockSize_10/level_5-10 40598317 28.30 ns/op 353.33 MB/s 0 B/op 0 allocs/op BenchmarkCompress/blockSize_10/level_10-10 38415057 28.74 ns/op 347.97 MB/s 0 B/op 0 allocs/op BenchmarkCompress/blockSize_100/level_3-10 11270973 105.6 ns/op 947.07 MB/s 0 B/op 0 allocs/op BenchmarkCompress/blockSize_100/level_5-10 7909160 152.0 ns/op 657.89 MB/s 0 B/op 0 allocs/op BenchmarkCompress/blockSize_100/level_10-10 7431728 167.9 ns/op 595.65 MB/s 0 B/op 0 allocs/op BenchmarkCompress/blockSize_1000/level_3-10 2239350 525.9 ns/op 1901.52 MB/s 0 B/op 0 allocs/op BenchmarkCompress/blockSize_1000/level_5-10 1504802 790.5 ns/op 1265.03 MB/s 0 B/op 0 allocs/op BenchmarkCompress/blockSize_1000/level_10-10 940610 1136 ns/op 880.05 MB/s 0 B/op 0 allocs/op BenchmarkCompress/blockSize_10000/level_3-10 431268 2681 ns/op 3730.17 MB/s 0 B/op 0 allocs/op BenchmarkCompress/blockSize_10000/level_5-10 185668 6083 ns/op 1643.94 MB/s 0 B/op 0 allocs/op BenchmarkCompress/blockSize_10000/level_10-10 44887 26897 ns/op 371.78 MB/s 2 B/op 0 allocs/op BenchmarkCompress/blockSize_100000/level_3-10 51292 23548 ns/op 4246.60 MB/s 24 B/op 0 allocs/op BenchmarkCompress/blockSize_100000/level_5-10 23295 52249 ns/op 1913.91 MB/s 55 B/op 0 allocs/op BenchmarkCompress/blockSize_100000/level_10-10 4044 273817 ns/op 365.21 MB/s 297 B/op 0 allocs/op BenchmarkCompress/blockSize_300000/level_3-10 15006 80227 ns/op 3739.39 MB/s 245 B/op 0 allocs/op BenchmarkCompress/blockSize_300000/level_5-10 7324 162964 ns/op 1840.90 MB/s 515 B/op 0 allocs/op BenchmarkCompress/blockSize_300000/level_10-10 1928 533395 ns/op 562.43 MB/s 1829 B/op 0 allocs/op BenchmarkDecompress/blockSize_1/level_3-10 68179071 18.68 ns/op 53.55 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_1/level_3-10 gozstd_timing_test.go:240: compressionRatio: 0.100000 gozstd_timing_test.go:240: compressionRatio: 0.100000 gozstd_timing_test.go:240: compressionRatio: 0.100000 gozstd_timing_test.go:240: compressionRatio: 0.100000 gozstd_timing_test.go:240: compressionRatio: 0.100000 BenchmarkDecompress/blockSize_1/level_5-10 67539680 17.46 ns/op 57.26 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_1/level_5-10 gozstd_timing_test.go:240: compressionRatio: 0.100000 gozstd_timing_test.go:240: compressionRatio: 0.100000 gozstd_timing_test.go:240: compressionRatio: 0.100000 gozstd_timing_test.go:240: compressionRatio: 0.100000 gozstd_timing_test.go:240: compressionRatio: 0.100000 BenchmarkDecompress/blockSize_1/level_10-10 70908889 16.98 ns/op 58.88 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_1/level_10-10 gozstd_timing_test.go:240: compressionRatio: 0.100000 gozstd_timing_test.go:240: compressionRatio: 0.100000 gozstd_timing_test.go:240: compressionRatio: 0.100000 gozstd_timing_test.go:240: compressionRatio: 0.100000 gozstd_timing_test.go:240: compressionRatio: 0.100000 BenchmarkDecompress/blockSize_10/level_3-10 69277564 18.52 ns/op 539.88 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_10/level_3-10 gozstd_timing_test.go:240: compressionRatio: 0.526316 gozstd_timing_test.go:240: compressionRatio: 0.526316 gozstd_timing_test.go:240: compressionRatio: 0.526316 gozstd_timing_test.go:240: compressionRatio: 0.526316 gozstd_timing_test.go:240: compressionRatio: 0.526316 BenchmarkDecompress/blockSize_10/level_5-10 69361486 21.35 ns/op 468.34 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_10/level_5-10 gozstd_timing_test.go:240: compressionRatio: 0.526316 gozstd_timing_test.go:240: compressionRatio: 0.526316 gozstd_timing_test.go:240: compressionRatio: 0.526316 gozstd_timing_test.go:240: compressionRatio: 0.526316 gozstd_timing_test.go:240: compressionRatio: 0.526316 BenchmarkDecompress/blockSize_10/level_10-10 62936374 16.44 ns/op 608.42 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_10/level_10-10 gozstd_timing_test.go:240: compressionRatio: 0.526316 gozstd_timing_test.go:240: compressionRatio: 0.526316 gozstd_timing_test.go:240: compressionRatio: 0.526316 gozstd_timing_test.go:240: compressionRatio: 0.526316 gozstd_timing_test.go:240: compressionRatio: 0.526316 BenchmarkDecompress/blockSize_100/level_3-10 46169679 24.56 ns/op 4072.17 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_100/level_3-10 gozstd_timing_test.go:240: compressionRatio: 1.639344 gozstd_timing_test.go:240: compressionRatio: 1.639344 gozstd_timing_test.go:240: compressionRatio: 1.639344 gozstd_timing_test.go:240: compressionRatio: 1.639344 gozstd_timing_test.go:240: compressionRatio: 1.639344 BenchmarkDecompress/blockSize_100/level_5-10 45130878 24.63 ns/op 4059.62 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_100/level_5-10 gozstd_timing_test.go:240: compressionRatio: 1.639344 gozstd_timing_test.go:240: compressionRatio: 1.639344 gozstd_timing_test.go:240: compressionRatio: 1.639344 gozstd_timing_test.go:240: compressionRatio: 1.639344 gozstd_timing_test.go:240: compressionRatio: 1.639344 BenchmarkDecompress/blockSize_100/level_10-10 43677459 24.61 ns/op 4063.61 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_100/level_10-10 gozstd_timing_test.go:240: compressionRatio: 1.639344 gozstd_timing_test.go:240: compressionRatio: 1.639344 gozstd_timing_test.go:240: compressionRatio: 1.639344 gozstd_timing_test.go:240: compressionRatio: 1.639344 gozstd_timing_test.go:240: compressionRatio: 1.639344 BenchmarkDecompress/blockSize_1000/level_3-10 4043086 302.6 ns/op 3304.66 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_1000/level_3-10 gozstd_timing_test.go:240: compressionRatio: 4.901961 gozstd_timing_test.go:240: compressionRatio: 4.901961 gozstd_timing_test.go:240: compressionRatio: 4.901961 gozstd_timing_test.go:240: compressionRatio: 4.901961 gozstd_timing_test.go:240: compressionRatio: 4.901961 BenchmarkDecompress/blockSize_1000/level_5-10 4037098 301.5 ns/op 3316.82 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_1000/level_5-10 gozstd_timing_test.go:240: compressionRatio: 5.000000 gozstd_timing_test.go:240: compressionRatio: 5.000000 gozstd_timing_test.go:240: compressionRatio: 5.000000 gozstd_timing_test.go:240: compressionRatio: 5.000000 gozstd_timing_test.go:240: compressionRatio: 5.000000 BenchmarkDecompress/blockSize_1000/level_10-10 4038547 295.8 ns/op 3381.17 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_1000/level_10-10 gozstd_timing_test.go:240: compressionRatio: 5.235602 gozstd_timing_test.go:240: compressionRatio: 5.235602 gozstd_timing_test.go:240: compressionRatio: 5.235602 gozstd_timing_test.go:240: compressionRatio: 5.235602 gozstd_timing_test.go:240: compressionRatio: 5.235602 BenchmarkDecompress/blockSize_10000/level_3-10 891900 1262 ns/op 7922.35 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_10000/level_3-10 gozstd_timing_test.go:240: compressionRatio: 6.365372 gozstd_timing_test.go:240: compressionRatio: 6.365372 gozstd_timing_test.go:240: compressionRatio: 6.365372 gozstd_timing_test.go:240: compressionRatio: 6.365372 BenchmarkDecompress/blockSize_10000/level_5-10 914595 1219 ns/op 8206.09 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_10000/level_5-10 gozstd_timing_test.go:240: compressionRatio: 6.108735 gozstd_timing_test.go:240: compressionRatio: 6.108735 gozstd_timing_test.go:240: compressionRatio: 6.108735 gozstd_timing_test.go:240: compressionRatio: 6.108735 BenchmarkDecompress/blockSize_10000/level_10-10 898231 1210 ns/op 8265.91 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_10000/level_10-10 gozstd_timing_test.go:240: compressionRatio: 7.757952 gozstd_timing_test.go:240: compressionRatio: 7.757952 gozstd_timing_test.go:240: compressionRatio: 7.757952 gozstd_timing_test.go:240: compressionRatio: 7.757952 BenchmarkDecompress/blockSize_100000/level_3-10 130620 8596 ns/op 11633.09 MB/s 16 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_100000/level_3-10 gozstd_timing_test.go:240: compressionRatio: 5.077431 gozstd_timing_test.go:240: compressionRatio: 5.077431 gozstd_timing_test.go:240: compressionRatio: 5.077431 gozstd_timing_test.go:240: compressionRatio: 5.077431 BenchmarkDecompress/blockSize_100000/level_5-10 114969 9943 ns/op 10056.86 MB/s 18 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_100000/level_5-10 gozstd_timing_test.go:240: compressionRatio: 4.663962 gozstd_timing_test.go:240: compressionRatio: 4.663962 gozstd_timing_test.go:240: compressionRatio: 4.663962 gozstd_timing_test.go:240: compressionRatio: 4.663962 BenchmarkDecompress/blockSize_100000/level_10-10 140643 8492 ns/op 11775.59 MB/s 15 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_100000/level_10-10 gozstd_timing_test.go:240: compressionRatio: 7.856694 gozstd_timing_test.go:240: compressionRatio: 7.856694 gozstd_timing_test.go:240: compressionRatio: 7.856694 gozstd_timing_test.go:240: compressionRatio: 7.856694 BenchmarkDecompress/blockSize_300000/level_3-10 46741 25802 ns/op 11627.06 MB/s 64 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_300000/level_3-10 gozstd_timing_test.go:240: compressionRatio: 4.994257 gozstd_timing_test.go:240: compressionRatio: 4.994257 gozstd_timing_test.go:240: compressionRatio: 4.994257 gozstd_timing_test.go:240: compressionRatio: 4.994257 BenchmarkDecompress/blockSize_300000/level_5-10 38751 30702 ns/op 9771.38 MB/s 78 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_300000/level_5-10 gozstd_timing_test.go:240: compressionRatio: 4.444708 gozstd_timing_test.go:240: compressionRatio: 4.444708 gozstd_timing_test.go:240: compressionRatio: 4.444708 gozstd_timing_test.go:240: compressionRatio: 4.444708 BenchmarkDecompress/blockSize_300000/level_10-10 49149 24376 ns/op 12307.01 MB/s 61 B/op 0 allocs/op --- BENCH: BenchmarkDecompress/blockSize_300000/level_10-10 gozstd_timing_test.go:240: compressionRatio: 7.186662 gozstd_timing_test.go:240: compressionRatio: 7.186662 gozstd_timing_test.go:240: compressionRatio: 7.186662 gozstd_timing_test.go:240: compressionRatio: 7.186662 BenchmarkReaderDict/blockSize_1/level_3-10 23909581 52.90 ns/op 189.03 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_1/level_3-10 reader_timing_test.go:26: compressionRatio: 0.500000 reader_timing_test.go:26: compressionRatio: 0.500000 reader_timing_test.go:26: compressionRatio: 0.500000 reader_timing_test.go:26: compressionRatio: 0.500000 reader_timing_test.go:26: compressionRatio: 0.500000 BenchmarkReaderDict/blockSize_1/level_5-10 24110384 46.20 ns/op 216.43 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_1/level_5-10 reader_timing_test.go:26: compressionRatio: 0.434783 reader_timing_test.go:26: compressionRatio: 0.434783 reader_timing_test.go:26: compressionRatio: 0.434783 reader_timing_test.go:26: compressionRatio: 0.434783 reader_timing_test.go:26: compressionRatio: 0.434783 BenchmarkReaderDict/blockSize_1/level_10-10 23077162 51.06 ns/op 195.84 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_1/level_10-10 reader_timing_test.go:26: compressionRatio: 0.500000 reader_timing_test.go:26: compressionRatio: 0.500000 reader_timing_test.go:26: compressionRatio: 0.500000 reader_timing_test.go:26: compressionRatio: 0.500000 reader_timing_test.go:26: compressionRatio: 0.500000 BenchmarkReaderDict/blockSize_10/level_3-10 22895083 52.09 ns/op 1919.79 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_10/level_3-10 reader_timing_test.go:26: compressionRatio: 5.000000 reader_timing_test.go:26: compressionRatio: 5.000000 reader_timing_test.go:26: compressionRatio: 5.000000 reader_timing_test.go:26: compressionRatio: 5.000000 reader_timing_test.go:26: compressionRatio: 5.000000 BenchmarkReaderDict/blockSize_10/level_5-10 22543466 50.20 ns/op 1992.14 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_10/level_5-10 reader_timing_test.go:26: compressionRatio: 4.347826 reader_timing_test.go:26: compressionRatio: 4.347826 reader_timing_test.go:26: compressionRatio: 4.347826 reader_timing_test.go:26: compressionRatio: 4.347826 reader_timing_test.go:26: compressionRatio: 4.347826 BenchmarkReaderDict/blockSize_10/level_10-10 22360959 51.13 ns/op 1955.88 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_10/level_10-10 reader_timing_test.go:26: compressionRatio: 4.166667 reader_timing_test.go:26: compressionRatio: 4.166667 reader_timing_test.go:26: compressionRatio: 4.166667 reader_timing_test.go:26: compressionRatio: 4.166667 reader_timing_test.go:26: compressionRatio: 4.166667 BenchmarkReaderDict/blockSize_100/level_3-10 7851963 144.5 ns/op 6918.08 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_100/level_3-10 reader_timing_test.go:26: compressionRatio: 4.255319 reader_timing_test.go:26: compressionRatio: 4.255319 reader_timing_test.go:26: compressionRatio: 4.255319 reader_timing_test.go:26: compressionRatio: 4.255319 reader_timing_test.go:26: compressionRatio: 4.255319 BenchmarkReaderDict/blockSize_100/level_5-10 3682702 337.7 ns/op 2961.58 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_100/level_5-10 reader_timing_test.go:26: compressionRatio: 6.097561 reader_timing_test.go:26: compressionRatio: 6.097561 reader_timing_test.go:26: compressionRatio: 6.097561 reader_timing_test.go:26: compressionRatio: 6.097561 reader_timing_test.go:26: compressionRatio: 6.097561 BenchmarkReaderDict/blockSize_100/level_10-10 3286165 331.4 ns/op 3017.12 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_100/level_10-10 reader_timing_test.go:26: compressionRatio: 5.847953 reader_timing_test.go:26: compressionRatio: 5.847953 reader_timing_test.go:26: compressionRatio: 5.847953 reader_timing_test.go:26: compressionRatio: 5.847953 reader_timing_test.go:26: compressionRatio: 5.847953 BenchmarkReaderDict/blockSize_1000/level_3-10 945666 1121 ns/op 8919.11 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_1000/level_3-10 reader_timing_test.go:26: compressionRatio: 4.081633 reader_timing_test.go:26: compressionRatio: 4.081633 reader_timing_test.go:26: compressionRatio: 4.081633 reader_timing_test.go:26: compressionRatio: 4.081633 BenchmarkReaderDict/blockSize_1000/level_5-10 913131 1334 ns/op 7497.17 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_1000/level_5-10 reader_timing_test.go:26: compressionRatio: 6.648936 reader_timing_test.go:26: compressionRatio: 6.648936 reader_timing_test.go:26: compressionRatio: 6.648936 reader_timing_test.go:26: compressionRatio: 6.648936 BenchmarkReaderDict/blockSize_1000/level_10-10 829502 1250 ns/op 8002.89 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_1000/level_10-10 reader_timing_test.go:26: compressionRatio: 8.000000 reader_timing_test.go:26: compressionRatio: 8.000000 reader_timing_test.go:26: compressionRatio: 8.000000 reader_timing_test.go:26: compressionRatio: 8.000000 BenchmarkReaderDict/blockSize_10000/level_3-10 112638 9605 ns/op 10410.85 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_10000/level_3-10 reader_timing_test.go:26: compressionRatio: 5.651314 reader_timing_test.go:26: compressionRatio: 5.651314 reader_timing_test.go:26: compressionRatio: 5.651314 reader_timing_test.go:26: compressionRatio: 5.651314 BenchmarkReaderDict/blockSize_10000/level_5-10 121819 9511 ns/op 10514.62 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_10000/level_5-10 reader_timing_test.go:26: compressionRatio: 5.755396 reader_timing_test.go:26: compressionRatio: 5.755396 reader_timing_test.go:26: compressionRatio: 5.755396 reader_timing_test.go:26: compressionRatio: 5.755396 BenchmarkReaderDict/blockSize_10000/level_10-10 136928 8532 ns/op 11720.62 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_10000/level_10-10 reader_timing_test.go:26: compressionRatio: 7.328692 reader_timing_test.go:26: compressionRatio: 7.328692 reader_timing_test.go:26: compressionRatio: 7.328692 reader_timing_test.go:26: compressionRatio: 7.328692 BenchmarkReaderDict/blockSize_100000/level_3-10 12369 95905 ns/op 10427.04 MB/s 86 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_100000/level_3-10 reader_timing_test.go:26: compressionRatio: 4.716269 reader_timing_test.go:26: compressionRatio: 4.716269 reader_timing_test.go:26: compressionRatio: 4.716269 reader_timing_test.go:26: compressionRatio: 4.716269 BenchmarkReaderDict/blockSize_100000/level_5-10 9988 115599 ns/op 8650.57 MB/s 106 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_100000/level_5-10 reader_timing_test.go:26: compressionRatio: 4.379204 reader_timing_test.go:26: compressionRatio: 4.379204 reader_timing_test.go:26: compressionRatio: 4.379204 BenchmarkReaderDict/blockSize_100000/level_10-10 13290 89410 ns/op 11184.42 MB/s 80 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_100000/level_10-10 reader_timing_test.go:26: compressionRatio: 7.289533 reader_timing_test.go:26: compressionRatio: 7.289533 reader_timing_test.go:26: compressionRatio: 7.289533 reader_timing_test.go:26: compressionRatio: 7.289533 BenchmarkReaderDict/blockSize_300000/level_3-10 3342 376404 ns/op 7970.17 MB/s 907 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_300000/level_3-10 reader_timing_test.go:26: compressionRatio: 5.011033 reader_timing_test.go:26: compressionRatio: 5.011033 reader_timing_test.go:26: compressionRatio: 5.011033 BenchmarkReaderDict/blockSize_300000/level_5-10 3260 328698 ns/op 9126.92 MB/s 930 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_300000/level_5-10 reader_timing_test.go:26: compressionRatio: 4.541725 reader_timing_test.go:26: compressionRatio: 4.541725 reader_timing_test.go:26: compressionRatio: 4.541725 BenchmarkReaderDict/blockSize_300000/level_10-10 3864 320469 ns/op 9361.29 MB/s 784 B/op 0 allocs/op --- BENCH: BenchmarkReaderDict/blockSize_300000/level_10-10 reader_timing_test.go:26: compressionRatio: 7.885275 reader_timing_test.go:26: compressionRatio: 7.885275 reader_timing_test.go:26: compressionRatio: 7.885275 BenchmarkReader/blockSize_1/level_3-10 23042635 53.65 ns/op 186.38 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_1/level_3-10 reader_timing_test.go:66: compressionRatio: 0.526316 reader_timing_test.go:66: compressionRatio: 0.526316 reader_timing_test.go:66: compressionRatio: 0.526316 reader_timing_test.go:66: compressionRatio: 0.526316 reader_timing_test.go:66: compressionRatio: 0.526316 BenchmarkReader/blockSize_1/level_5-10 25633562 54.20 ns/op 184.51 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_1/level_5-10 reader_timing_test.go:66: compressionRatio: 0.526316 reader_timing_test.go:66: compressionRatio: 0.526316 reader_timing_test.go:66: compressionRatio: 0.526316 reader_timing_test.go:66: compressionRatio: 0.526316 reader_timing_test.go:66: compressionRatio: 0.526316 BenchmarkReader/blockSize_1/level_10-10 23820788 51.20 ns/op 195.29 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_1/level_10-10 reader_timing_test.go:66: compressionRatio: 0.526316 reader_timing_test.go:66: compressionRatio: 0.526316 reader_timing_test.go:66: compressionRatio: 0.526316 reader_timing_test.go:66: compressionRatio: 0.526316 reader_timing_test.go:66: compressionRatio: 0.526316 BenchmarkReader/blockSize_10/level_3-10 20729624 57.01 ns/op 1754.05 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_10/level_3-10 reader_timing_test.go:66: compressionRatio: 1.639344 reader_timing_test.go:66: compressionRatio: 1.639344 reader_timing_test.go:66: compressionRatio: 1.639344 reader_timing_test.go:66: compressionRatio: 1.639344 reader_timing_test.go:66: compressionRatio: 1.639344 BenchmarkReader/blockSize_10/level_5-10 20242729 56.35 ns/op 1774.48 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_10/level_5-10 reader_timing_test.go:66: compressionRatio: 1.639344 reader_timing_test.go:66: compressionRatio: 1.639344 reader_timing_test.go:66: compressionRatio: 1.639344 reader_timing_test.go:66: compressionRatio: 1.639344 reader_timing_test.go:66: compressionRatio: 1.639344 BenchmarkReader/blockSize_10/level_10-10 16717485 60.44 ns/op 1654.40 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_10/level_10-10 reader_timing_test.go:66: compressionRatio: 1.639344 reader_timing_test.go:66: compressionRatio: 1.639344 reader_timing_test.go:66: compressionRatio: 1.639344 reader_timing_test.go:66: compressionRatio: 1.639344 reader_timing_test.go:66: compressionRatio: 1.639344 BenchmarkReader/blockSize_100/level_3-10 3485342 352.5 ns/op 2837.15 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_100/level_3-10 reader_timing_test.go:66: compressionRatio: 4.901961 reader_timing_test.go:66: compressionRatio: 4.901961 reader_timing_test.go:66: compressionRatio: 4.901961 reader_timing_test.go:66: compressionRatio: 4.901961 reader_timing_test.go:66: compressionRatio: 4.901961 BenchmarkReader/blockSize_100/level_5-10 3554890 332.1 ns/op 3011.21 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_100/level_5-10 reader_timing_test.go:66: compressionRatio: 5.000000 reader_timing_test.go:66: compressionRatio: 5.000000 reader_timing_test.go:66: compressionRatio: 5.000000 reader_timing_test.go:66: compressionRatio: 5.000000 reader_timing_test.go:66: compressionRatio: 5.000000 BenchmarkReader/blockSize_100/level_10-10 3571336 327.7 ns/op 3051.19 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_100/level_10-10 reader_timing_test.go:66: compressionRatio: 5.235602 reader_timing_test.go:66: compressionRatio: 5.235602 reader_timing_test.go:66: compressionRatio: 5.235602 reader_timing_test.go:66: compressionRatio: 5.235602 reader_timing_test.go:66: compressionRatio: 5.235602 BenchmarkReader/blockSize_1000/level_3-10 837177 1265 ns/op 7907.31 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_1000/level_3-10 reader_timing_test.go:66: compressionRatio: 6.365372 reader_timing_test.go:66: compressionRatio: 6.365372 reader_timing_test.go:66: compressionRatio: 6.365372 reader_timing_test.go:66: compressionRatio: 6.365372 BenchmarkReader/blockSize_1000/level_5-10 899692 1251 ns/op 7996.77 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_1000/level_5-10 reader_timing_test.go:66: compressionRatio: 6.108735 reader_timing_test.go:66: compressionRatio: 6.108735 reader_timing_test.go:66: compressionRatio: 6.108735 reader_timing_test.go:66: compressionRatio: 6.108735 BenchmarkReader/blockSize_1000/level_10-10 831225 1230 ns/op 8131.49 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_1000/level_10-10 reader_timing_test.go:66: compressionRatio: 7.757952 reader_timing_test.go:66: compressionRatio: 7.757952 reader_timing_test.go:66: compressionRatio: 7.757952 reader_timing_test.go:66: compressionRatio: 7.757952 BenchmarkReader/blockSize_10000/level_3-10 139456 8723 ns/op 11463.61 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_10000/level_3-10 reader_timing_test.go:66: compressionRatio: 5.077431 reader_timing_test.go:66: compressionRatio: 5.077431 reader_timing_test.go:66: compressionRatio: 5.077431 reader_timing_test.go:66: compressionRatio: 5.077431 BenchmarkReader/blockSize_10000/level_5-10 113506 10105 ns/op 9896.04 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_10000/level_5-10 reader_timing_test.go:66: compressionRatio: 4.663962 reader_timing_test.go:66: compressionRatio: 4.663962 reader_timing_test.go:66: compressionRatio: 4.663962 reader_timing_test.go:66: compressionRatio: 4.663962 BenchmarkReader/blockSize_10000/level_10-10 137218 8602 ns/op 11625.22 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_10000/level_10-10 reader_timing_test.go:66: compressionRatio: 7.856694 reader_timing_test.go:66: compressionRatio: 7.856694 reader_timing_test.go:66: compressionRatio: 7.856694 reader_timing_test.go:66: compressionRatio: 7.856694 BenchmarkReader/blockSize_100000/level_3-10 12800 91715 ns/op 10903.38 MB/s 83 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_100000/level_3-10 reader_timing_test.go:66: compressionRatio: 4.861236 reader_timing_test.go:66: compressionRatio: 4.861236 reader_timing_test.go:66: compressionRatio: 4.861236 reader_timing_test.go:66: compressionRatio: 4.861236 BenchmarkReader/blockSize_100000/level_5-10 10000 100278 ns/op 9972.27 MB/s 106 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_100000/level_5-10 reader_timing_test.go:66: compressionRatio: 4.377479 reader_timing_test.go:66: compressionRatio: 4.377479 reader_timing_test.go:66: compressionRatio: 4.377479 BenchmarkReader/blockSize_100000/level_10-10 14332 84056 ns/op 11896.86 MB/s 74 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_100000/level_10-10 reader_timing_test.go:66: compressionRatio: 7.287514 reader_timing_test.go:66: compressionRatio: 7.287514 reader_timing_test.go:66: compressionRatio: 7.287514 reader_timing_test.go:66: compressionRatio: 7.287514 BenchmarkReader/blockSize_300000/level_3-10 3675 309088 ns/op 9705.97 MB/s 825 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_300000/level_3-10 reader_timing_test.go:66: compressionRatio: 5.120773 reader_timing_test.go:66: compressionRatio: 5.120773 reader_timing_test.go:66: compressionRatio: 5.120773 BenchmarkReader/blockSize_300000/level_5-10 3463 322334 ns/op 9307.11 MB/s 875 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_300000/level_5-10 reader_timing_test.go:66: compressionRatio: 4.541106 reader_timing_test.go:66: compressionRatio: 4.541106 reader_timing_test.go:66: compressionRatio: 4.541106 BenchmarkReader/blockSize_300000/level_10-10 4047 270410 ns/op 11094.27 MB/s 749 B/op 0 allocs/op --- BENCH: BenchmarkReader/blockSize_300000/level_10-10 reader_timing_test.go:66: compressionRatio: 7.884487 reader_timing_test.go:66: compressionRatio: 7.884487 reader_timing_test.go:66: compressionRatio: 7.884487 BenchmarkStreamCompress/blockSize_1/level_3-10 2889586 424.7 ns/op 23.55 MB/s 0 B/op 0 allocs/op BenchmarkStreamCompress/blockSize_1/level_5-10 2819452 424.1 ns/op 23.58 MB/s 0 B/op 0 allocs/op BenchmarkStreamCompress/blockSize_1/level_10-10 2820154 422.2 ns/op 23.68 MB/s 0 B/op 0 allocs/op BenchmarkStreamCompress/blockSize_10/level_3-10 2654268 442.9 ns/op 225.78 MB/s 0 B/op 0 allocs/op BenchmarkStreamCompress/blockSize_10/level_5-10 2602590 470.7 ns/op 212.45 MB/s 0 B/op 0 allocs/op BenchmarkStreamCompress/blockSize_10/level_10-10 2366784 526.1 ns/op 190.07 MB/s 0 B/op 0 allocs/op BenchmarkStreamCompress/blockSize_100/level_3-10 1817143 683.7 ns/op 1462.67 MB/s 0 B/op 0 allocs/op BenchmarkStreamCompress/blockSize_100/level_5-10 1278894 900.1 ns/op 1110.97 MB/s 0 B/op 0 allocs/op BenchmarkStreamCompress/blockSize_100/level_10-10 383754 2747 ns/op 364.01 MB/s 0 B/op 0 allocs/op BenchmarkStreamCompress/blockSize_1000/level_3-10 407347 3098 ns/op 3227.45 MB/s 0 B/op 0 allocs/op BenchmarkStreamCompress/blockSize_1000/level_5-10 185925 5481 ns/op 1824.61 MB/s 0 B/op 0 allocs/op BenchmarkStreamCompress/blockSize_1000/level_10-10 48416 24217 ns/op 412.93 MB/s 0 B/op 0 allocs/op BenchmarkStreamCompress/blockSize_10000/level_3-10 51042 24596 ns/op 4065.71 MB/s 6 B/op 0 allocs/op BenchmarkStreamCompress/blockSize_10000/level_5-10 22314 53906 ns/op 1855.09 MB/s 14 B/op 0 allocs/op BenchmarkStreamCompress/blockSize_10000/level_10-10 5152 224892 ns/op 444.66 MB/s 64 B/op 1 allocs/op BenchmarkStreamCompress/blockSize_100000/level_3-10 3258 308453 ns/op 3241.99 MB/s 840 B/op 24 allocs/op BenchmarkStreamCompress/blockSize_100000/level_5-10 1717 599351 ns/op 1668.47 MB/s 1594 B/op 46 allocs/op BenchmarkStreamCompress/blockSize_100000/level_10-10 451 2364156 ns/op 422.98 MB/s 6071 B/op 176 allocs/op BenchmarkStreamCompress/blockSize_300000/level_3-10 1233 956084 ns/op 3137.80 MB/s 8324 B/op 189 allocs/op BenchmarkStreamCompress/blockSize_300000/level_5-10 576 2096914 ns/op 1430.67 MB/s 17821 B/op 405 allocs/op BenchmarkStreamCompress/blockSize_300000/level_10-10 139 7824053 ns/op 383.43 MB/s 73849 B/op 1679 allocs/op BenchmarkStreamDecompress/blockSize_1/level_3-10 16257006 73.43 ns/op 136.18 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_1/level_3-10 stream_timing_test.go:52: compressionRatio: 0.526316 stream_timing_test.go:52: compressionRatio: 0.526316 stream_timing_test.go:52: compressionRatio: 0.526316 stream_timing_test.go:52: compressionRatio: 0.526316 stream_timing_test.go:52: compressionRatio: 0.526316 stream_timing_test.go:52: compressionRatio: 0.526316 BenchmarkStreamDecompress/blockSize_1/level_5-10 18653356 57.00 ns/op 175.44 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_1/level_5-10 stream_timing_test.go:52: compressionRatio: 0.526316 stream_timing_test.go:52: compressionRatio: 0.526316 stream_timing_test.go:52: compressionRatio: 0.526316 stream_timing_test.go:52: compressionRatio: 0.526316 stream_timing_test.go:52: compressionRatio: 0.526316 BenchmarkStreamDecompress/blockSize_1/level_10-10 20029612 57.99 ns/op 172.43 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_1/level_10-10 stream_timing_test.go:52: compressionRatio: 0.526316 stream_timing_test.go:52: compressionRatio: 0.526316 stream_timing_test.go:52: compressionRatio: 0.526316 stream_timing_test.go:52: compressionRatio: 0.526316 stream_timing_test.go:52: compressionRatio: 0.526316 BenchmarkStreamDecompress/blockSize_10/level_3-10 18178581 62.92 ns/op 1589.25 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_10/level_3-10 stream_timing_test.go:52: compressionRatio: 1.639344 stream_timing_test.go:52: compressionRatio: 1.639344 stream_timing_test.go:52: compressionRatio: 1.639344 stream_timing_test.go:52: compressionRatio: 1.639344 stream_timing_test.go:52: compressionRatio: 1.639344 BenchmarkStreamDecompress/blockSize_10/level_5-10 14231569 75.10 ns/op 1331.63 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_10/level_5-10 stream_timing_test.go:52: compressionRatio: 1.639344 stream_timing_test.go:52: compressionRatio: 1.639344 stream_timing_test.go:52: compressionRatio: 1.639344 stream_timing_test.go:52: compressionRatio: 1.639344 stream_timing_test.go:52: compressionRatio: 1.639344 BenchmarkStreamDecompress/blockSize_10/level_10-10 20242615 62.79 ns/op 1592.65 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_10/level_10-10 stream_timing_test.go:52: compressionRatio: 1.639344 stream_timing_test.go:52: compressionRatio: 1.639344 stream_timing_test.go:52: compressionRatio: 1.639344 stream_timing_test.go:52: compressionRatio: 1.639344 stream_timing_test.go:52: compressionRatio: 1.639344 BenchmarkStreamDecompress/blockSize_100/level_3-10 3486961 342.8 ns/op 2917.30 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_100/level_3-10 stream_timing_test.go:52: compressionRatio: 4.901961 stream_timing_test.go:52: compressionRatio: 4.901961 stream_timing_test.go:52: compressionRatio: 4.901961 stream_timing_test.go:52: compressionRatio: 4.901961 stream_timing_test.go:52: compressionRatio: 4.901961 BenchmarkStreamDecompress/blockSize_100/level_5-10 3367322 356.3 ns/op 2806.36 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_100/level_5-10 stream_timing_test.go:52: compressionRatio: 5.000000 stream_timing_test.go:52: compressionRatio: 5.000000 stream_timing_test.go:52: compressionRatio: 5.000000 stream_timing_test.go:52: compressionRatio: 5.000000 stream_timing_test.go:52: compressionRatio: 5.000000 BenchmarkStreamDecompress/blockSize_100/level_10-10 3508026 331.8 ns/op 3014.15 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_100/level_10-10 stream_timing_test.go:52: compressionRatio: 5.235602 stream_timing_test.go:52: compressionRatio: 5.235602 stream_timing_test.go:52: compressionRatio: 5.235602 stream_timing_test.go:52: compressionRatio: 5.235602 stream_timing_test.go:52: compressionRatio: 5.235602 BenchmarkStreamDecompress/blockSize_1000/level_3-10 890810 1248 ns/op 8015.78 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_1000/level_3-10 stream_timing_test.go:52: compressionRatio: 6.365372 stream_timing_test.go:52: compressionRatio: 6.365372 stream_timing_test.go:52: compressionRatio: 6.365372 stream_timing_test.go:52: compressionRatio: 6.365372 BenchmarkStreamDecompress/blockSize_1000/level_5-10 898172 1248 ns/op 8011.39 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_1000/level_5-10 stream_timing_test.go:52: compressionRatio: 6.108735 stream_timing_test.go:52: compressionRatio: 6.108735 stream_timing_test.go:52: compressionRatio: 6.108735 stream_timing_test.go:52: compressionRatio: 6.108735 BenchmarkStreamDecompress/blockSize_1000/level_10-10 881431 1230 ns/op 8128.91 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_1000/level_10-10 stream_timing_test.go:52: compressionRatio: 7.757952 stream_timing_test.go:52: compressionRatio: 7.757952 stream_timing_test.go:52: compressionRatio: 7.757952 stream_timing_test.go:52: compressionRatio: 7.757952 BenchmarkStreamDecompress/blockSize_10000/level_3-10 143467 8443 ns/op 11844.40 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_10000/level_3-10 stream_timing_test.go:52: compressionRatio: 5.077431 stream_timing_test.go:52: compressionRatio: 5.077431 stream_timing_test.go:52: compressionRatio: 5.077431 stream_timing_test.go:52: compressionRatio: 5.077431 BenchmarkStreamDecompress/blockSize_10000/level_5-10 120232 9885 ns/op 10115.92 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_10000/level_5-10 stream_timing_test.go:52: compressionRatio: 4.663962 stream_timing_test.go:52: compressionRatio: 4.663962 stream_timing_test.go:52: compressionRatio: 4.663962 stream_timing_test.go:52: compressionRatio: 4.663962 BenchmarkStreamDecompress/blockSize_10000/level_10-10 142995 8385 ns/op 11925.78 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_10000/level_10-10 stream_timing_test.go:52: compressionRatio: 7.856694 stream_timing_test.go:52: compressionRatio: 7.856694 stream_timing_test.go:52: compressionRatio: 7.856694 stream_timing_test.go:52: compressionRatio: 7.856694 BenchmarkStreamDecompress/blockSize_100000/level_3-10 13494 88476 ns/op 11302.50 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_100000/level_3-10 stream_timing_test.go:52: compressionRatio: 4.861236 stream_timing_test.go:52: compressionRatio: 4.861236 stream_timing_test.go:52: compressionRatio: 4.861236 stream_timing_test.go:52: compressionRatio: 4.861236 BenchmarkStreamDecompress/blockSize_100000/level_5-10 12208 98714 ns/op 10130.33 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_100000/level_5-10 stream_timing_test.go:52: compressionRatio: 4.377479 stream_timing_test.go:52: compressionRatio: 4.377479 stream_timing_test.go:52: compressionRatio: 4.377479 stream_timing_test.go:52: compressionRatio: 4.377479 BenchmarkStreamDecompress/blockSize_100000/level_10-10 14788 81919 ns/op 12207.25 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_100000/level_10-10 stream_timing_test.go:52: compressionRatio: 7.287514 stream_timing_test.go:52: compressionRatio: 7.287514 stream_timing_test.go:52: compressionRatio: 7.287514 stream_timing_test.go:52: compressionRatio: 7.287514 BenchmarkStreamDecompress/blockSize_300000/level_3-10 3852 297917 ns/op 10069.92 MB/s 1 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_300000/level_3-10 stream_timing_test.go:52: compressionRatio: 5.120773 stream_timing_test.go:52: compressionRatio: 5.120773 stream_timing_test.go:52: compressionRatio: 5.120773 BenchmarkStreamDecompress/blockSize_300000/level_5-10 3661 312114 ns/op 9611.89 MB/s 1 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_300000/level_5-10 stream_timing_test.go:52: compressionRatio: 4.541106 stream_timing_test.go:52: compressionRatio: 4.541106 stream_timing_test.go:52: compressionRatio: 4.541106 BenchmarkStreamDecompress/blockSize_300000/level_10-10 4317 258572 ns/op 11602.21 MB/s 0 B/op 0 allocs/op --- BENCH: BenchmarkStreamDecompress/blockSize_300000/level_10-10 stream_timing_test.go:52: compressionRatio: 7.884487 stream_timing_test.go:52: compressionRatio: 7.884487 stream_timing_test.go:52: compressionRatio: 7.884487 BenchmarkWriterDict/blockSize_1/level_3-10 7927100 144.4 ns/op 69.26 MB/s 0 B/op 0 allocs/op BenchmarkWriterDict/blockSize_1/level_5-10 7985953 154.5 ns/op 64.72 MB/s 0 B/op 0 allocs/op BenchmarkWriterDict/blockSize_1/level_10-10 7796808 154.0 ns/op 64.92 MB/s 0 B/op 0 allocs/op BenchmarkWriterDict/blockSize_10/level_3-10 7644572 142.8 ns/op 700.28 MB/s 0 B/op 0 allocs/op BenchmarkWriterDict/blockSize_10/level_5-10 7367595 167.1 ns/op 598.42 MB/s 0 B/op 0 allocs/op BenchmarkWriterDict/blockSize_10/level_10-10 8424121 142.7 ns/op 700.64 MB/s 0 B/op 0 allocs/op BenchmarkWriterDict/blockSize_100/level_3-10 4133379 284.6 ns/op 3514.18 MB/s 0 B/op 0 allocs/op BenchmarkWriterDict/blockSize_100/level_5-10 1386415 882.7 ns/op 1132.95 MB/s 0 B/op 0 allocs/op BenchmarkWriterDict/blockSize_100/level_10-10 703848 1645 ns/op 607.95 MB/s 0 B/op 0 allocs/op BenchmarkWriterDict/blockSize_1000/level_3-10 397977 2871 ns/op 3483.67 MB/s 0 B/op 0 allocs/op BenchmarkWriterDict/blockSize_1000/level_5-10 173742 7086 ns/op 1411.17 MB/s 0 B/op 0 allocs/op BenchmarkWriterDict/blockSize_1000/level_10-10 71529 16614 ns/op 601.89 MB/s 0 B/op 0 allocs/op BenchmarkWriterDict/blockSize_10000/level_3-10 48283 24529 ns/op 4076.87 MB/s 6 B/op 0 allocs/op BenchmarkWriterDict/blockSize_10000/level_5-10 17950 66624 ns/op 1500.97 MB/s 18 B/op 0 allocs/op BenchmarkWriterDict/blockSize_10000/level_10-10 8116 134024 ns/op 746.14 MB/s 40 B/op 0 allocs/op BenchmarkWriterDict/blockSize_100000/level_3-10 4909 243975 ns/op 4098.77 MB/s 557 B/op 16 allocs/op BenchmarkWriterDict/blockSize_100000/level_5-10 2017 588288 ns/op 1699.85 MB/s 1356 B/op 39 allocs/op BenchmarkWriterDict/blockSize_100000/level_10-10 949 1163005 ns/op 859.84 MB/s 2884 B/op 83 allocs/op BenchmarkWriterDict/blockSize_300000/level_3-10 1687 708039 ns/op 4237.05 MB/s 6083 B/op 138 allocs/op BenchmarkWriterDict/blockSize_300000/level_5-10 698 1712456 ns/op 1751.87 MB/s 14702 B/op 334 allocs/op BenchmarkWriterDict/blockSize_300000/level_10-10 283 3572364 ns/op 839.78 MB/s 36261 B/op 824 allocs/op BenchmarkWriter/blockSize_1/level_3-10 15777345 76.70 ns/op 130.37 MB/s 0 B/op 0 allocs/op BenchmarkWriter/blockSize_1/level_5-10 15647997 74.53 ns/op 134.18 MB/s 0 B/op 0 allocs/op BenchmarkWriter/blockSize_1/level_10-10 14526313 75.32 ns/op 132.76 MB/s 0 B/op 0 allocs/op BenchmarkWriter/blockSize_10/level_3-10 7978782 154.3 ns/op 648.25 MB/s 0 B/op 0 allocs/op BenchmarkWriter/blockSize_10/level_5-10 6936434 178.8 ns/op 559.19 MB/s 0 B/op 0 allocs/op BenchmarkWriter/blockSize_10/level_10-10 3876721 310.8 ns/op 321.78 MB/s 0 B/op 0 allocs/op BenchmarkWriter/blockSize_100/level_3-10 2114316 569.0 ns/op 1757.39 MB/s 0 B/op 0 allocs/op BenchmarkWriter/blockSize_100/level_5-10 1454342 819.7 ns/op 1219.88 MB/s 0 B/op 0 allocs/op BenchmarkWriter/blockSize_100/level_10-10 488662 2456 ns/op 407.24 MB/s 0 B/op 0 allocs/op BenchmarkWriter/blockSize_1000/level_3-10 423304 2817 ns/op 3550.05 MB/s 0 B/op 0 allocs/op BenchmarkWriter/blockSize_1000/level_5-10 219763 5399 ns/op 1852.35 MB/s 0 B/op 0 allocs/op BenchmarkWriter/blockSize_1000/level_10-10 49176 23940 ns/op 417.70 MB/s 0 B/op 0 allocs/op BenchmarkWriter/blockSize_10000/level_3-10 50480 23386 ns/op 4275.98 MB/s 6 B/op 0 allocs/op BenchmarkWriter/blockSize_10000/level_5-10 22537 53274 ns/op 1877.07 MB/s 14 B/op 0 allocs/op BenchmarkWriter/blockSize_10000/level_10-10 5335 227806 ns/op 438.97 MB/s 61 B/op 1 allocs/op BenchmarkWriter/blockSize_100000/level_3-10 3332 323377 ns/op 3092.37 MB/s 821 B/op 23 allocs/op BenchmarkWriter/blockSize_100000/level_5-10 1768 599898 ns/op 1666.95 MB/s 1548 B/op 45 allocs/op BenchmarkWriter/blockSize_100000/level_10-10 441 2369386 ns/op 422.05 MB/s 6206 B/op 180 allocs/op BenchmarkWriter/blockSize_300000/level_3-10 1250 964178 ns/op 3111.46 MB/s 8209 B/op 186 allocs/op BenchmarkWriter/blockSize_300000/level_5-10 478 2330214 ns/op 1287.44 MB/s 21469 B/op 488 allocs/op BenchmarkWriter/blockSize_300000/level_10-10 135 7740833 ns/op 387.56 MB/s 76015 B/op 1729 allocs/op BenchmarkWriterResetAlloc-10 5864778 204.4 ns/op 0 B/op 0 allocs/op PASS ok github.com/valyala/gozstd 365.005s ```

coxley commented 2 months ago

@valyala: You seem to have been busy with bigger things, so sorry to bug you with yet another PR!

Have you thought about roping in another maintainer to help field changes? Do you still want contributions for missing surface area with the main zstd features? Are there any goals you'd like to see the lib accomplish, or is it pretty much "complete" for the use-cases you/@VictoriaMetrics have?

coxley commented 1 month ago

@valyala: Is there interest in these kind of contributions? I'd prefer to not do an internal fork, but there are some capabilities missing here when compared to the upstream lib.

Happy to make changes to the PR however you see fit if you have other implementation preferences.