diff --git a/cache/disk/casblob/casblob.go b/cache/disk/casblob/casblob.go index 00ef6de42..e3ff7dcb6 100644 --- a/cache/disk/casblob/casblob.go +++ b/cache/disk/casblob/casblob.go @@ -26,8 +26,8 @@ const ( var zstdFastestLevel = zstd.WithEncoderLevel(zstd.SpeedFastest) -var encoder, _ = zstd.NewWriter(nil, zstdFastestLevel) // TODO: raise WithEncoderConcurrency ? -var decoder, _ = zstd.NewReader(nil) // TODO: raise WithDecoderConcurrency ? +var encoder, _ = zstd.NewWriter(nil, zstdFastestLevel, zstd.WithLowerEncoderMem(true)) // TODO: raise WithEncoderConcurrency ? +var decoder, _ = zstd.NewReader(nil, zstd.WithDecoderLowmem(true)) // TODO: raise WithDecoderConcurrency ? var encoderPool = zstdpool.GetEncoderPool() var decoderPool = zstdpool.GetDecoderPool() diff --git a/server/http.go b/server/http.go index 6c7537100..b1dd4b94e 100644 --- a/server/http.go +++ b/server/http.go @@ -27,7 +27,7 @@ import ( var blobNameSHA256 = regexp.MustCompile("^/?(.*/)?(ac/|cas/)([a-f0-9]{64})$") -var decoder, _ = zstd.NewReader(nil) // TODO: raise WithDecoderConcurrency ? +var decoder, _ = zstd.NewReader(nil, zstd.WithDecoderLowmem(true)) // TODO: raise WithDecoderConcurrency ? // HTTPCache ... type HTTPCache interface { diff --git a/utils/zstdpool/zstdpool.go b/utils/zstdpool/zstdpool.go index 15cdea68f..bca8e619e 100644 --- a/utils/zstdpool/zstdpool.go +++ b/utils/zstdpool/zstdpool.go @@ -17,7 +17,8 @@ func GetEncoderPool() *sync.Pool { onceEncPool.Do(func() { encoderPool = syncpool.NewEncoderPool( zstd.WithEncoderConcurrency(1), - zstd.WithEncoderLevel(zstd.SpeedFastest)) + zstd.WithEncoderLevel(zstd.SpeedFastest), + zstd.WithLowerEncoderMem(true)) }) return encoderPool @@ -26,7 +27,8 @@ func GetEncoderPool() *sync.Pool { func GetDecoderPool() *sync.Pool { onceDecPool.Do(func() { decoderPool = syncpool.NewDecoderPool( - zstd.WithDecoderConcurrency(1)) + zstd.WithDecoderConcurrency(1), + zstd.WithDecoderLowmem(true)) }) return decoderPool