From 76988ca69a5f3e87a9cd97803dfd3ba0f82acbca Mon Sep 17 00:00:00 2001 From: bo Date: Wed, 28 Apr 2021 09:46:38 +0100 Subject: [PATCH] feat: zstd performance improvements the lock in that once per decode/encode is expensive, so just do it once at init Signed-off-by: bo --- zstd.go | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/zstd.go b/zstd.go index 7c9951acc..c87241f49 100644 --- a/zstd.go +++ b/zstd.go @@ -1,28 +1,16 @@ package sarama import ( - "sync" - "github.com/klauspost/compress/zstd" ) -var ( - zstdDec *zstd.Decoder - zstdEnc *zstd.Encoder - - zstdEncOnce, zstdDecOnce sync.Once -) +var zstdDec, _ = zstd.NewReader(nil) +var zstdEnc, _ = zstd.NewWriter(nil, zstd.WithZeroFrames(true)) func zstdDecompress(dst, src []byte) ([]byte, error) { - zstdDecOnce.Do(func() { - zstdDec, _ = zstd.NewReader(nil) - }) return zstdDec.DecodeAll(src, dst) } func zstdCompress(dst, src []byte) ([]byte, error) { - zstdEncOnce.Do(func() { - zstdEnc, _ = zstd.NewWriter(nil, zstd.WithZeroFrames(true)) - }) return zstdEnc.EncodeAll(src, dst), nil }