golang/src/internal/zstd
aimuz be50b58d70 internal/zstd: optimize window reset using make for buffer allocation
Optimize the zstd window's reset function to use `make` for buffer
allocation when needed. This ensures efficient memory usage by
conditionally reallocating the buffer based on its capacity, improving
performance in scenarios where the existing buffer is insufficient.

```
goos: darwin
goarch: amd64
pkg: internal/zstd
cpu: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
         │   old.out   │            new.out            │
         │   sec/op    │   sec/op     vs base          │
Large-12   7.299m ± 5%   7.235m ± 1%  ~ (p=0.353 n=10)

         │   old.out    │            new.out             │
         │     B/s      │     B/s       vs base          │
Large-12   35.56Mi ± 4%   35.87Mi ± 1%  ~ (p=0.353 n=10)

         │   old.out    │               new.out                │
         │     B/op     │     B/op      vs base                │
Large-12   68.86Ki ± 4%   15.87Ki ± 1%  -76.95% (p=0.000 n=10)

         │  old.out   │            new.out             │
         │ allocs/op  │ allocs/op   vs base            │
Large-12   0.000 ± 0%   0.000 ± 0%  ~ (p=1.000 n=10) ¹
¹ all samples are equal
```

Change-Id: Icd9c278b42ea149107a9861d006f40129c59831b
GitHub-Last-Rev: c00344cca415342eb563c62e325f1c2f7f28327d
GitHub-Pull-Request: golang/go#64221
Reviewed-on: https://go-review.googlesource.com/c/go/+/543375
Reviewed-by: qiulaidongfeng <2645477756@qq.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
2024-04-02 13:49:23 +00:00
..
testdata internal/zstd: handle match extending past window 2023-09-28 17:57:43 +00:00
bits.go internal/zstd: new internal package for zstd decompression 2023-04-18 20:34:13 +00:00
block.go internal/zstd: handle match extending past window 2023-09-28 17:57:43 +00:00
fse.go internal/zstd: s/thees/these/ 2023-11-17 16:44:06 +00:00
fse_test.go internal/zstd: new internal package for zstd decompression 2023-04-18 20:34:13 +00:00
fuzz_test.go internal/zstd: avoid panic when windowSize is negative 2024-01-30 04:10:45 +00:00
huff.go internal/zstd: new internal package for zstd decompression 2023-04-18 20:34:13 +00:00
literals.go internal/zstd: avoid panic when the regenerated size is too small 2023-11-09 14:30:10 +00:00
window.go internal/zstd: optimize window reset using make for buffer allocation 2024-04-02 13:49:23 +00:00
window_test.go internal/zstd: use circular buffer for backreference window 2023-09-20 18:05:09 +00:00
xxhash.go internal/zstd: new internal package for zstd decompression 2023-04-18 20:34:13 +00:00
xxhash_test.go internal/zstd: use dynamic path resolution for xxhsum in FuzzXXHash 2023-11-09 17:34:06 +00:00
zstd.go internal/zstd: avoid panic when windowSize is negative 2024-01-30 04:10:45 +00:00
zstd_test.go internal/zstd: fix seek offset bounds check in skipFrame 2023-11-17 16:39:21 +00:00