From 647f07b34095cd9c1dd87f32398f4c855c633b47 Mon Sep 17 00:00:00 2001 From: Mostyn Bramley-Moore Date: Wed, 22 Sep 2021 22:18:27 +0200 Subject: [PATCH] [zstd] test low memory options Let's see how this affects memory usage and performance. Related to #473. --- cache/disk/casblob/casblob.go | 4 ++-- server/http.go | 2 +- utils/zstdpool/zstdpool.go | 6 ++++-- 3 files changed, 7 insertions(+), 5 deletions(-) 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