From 86b4f7f257368f7cc8d125a3403ff06dbea88171 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Date: Wed, 16 Jul 2025 18:10:22 -0400 Subject: [PATCH] fix: make compression faster (less compressed) --- modules/core/include/packio/core/compression.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/core/include/packio/core/compression.h b/modules/core/include/packio/core/compression.h index 2371bea..6178039 100644 --- a/modules/core/include/packio/core/compression.h +++ b/modules/core/include/packio/core/compression.h @@ -30,6 +30,7 @@ SOFTWARE. #include #include #include +#include namespace packio @@ -77,8 +78,11 @@ namespace packio } // Set compression parameters - ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, ZSTD_maxCLevel()); // highest compression - ZSTD_CCtx_setParameter(cctx, ZSTD_c_nbWorkers, 4); // multi-threading + size_t nbWorkers = std::max(1u, std::thread::hardware_concurrency()); + ZSTD_CCtx_setParameter(cctx, ZSTD_c_nbWorkers, static_cast(nbWorkers)); + + // Set compression level (higher = slower, better compression) + ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, 2); // or whatever level you want // Allocate output buffer size_t maxCompressedSize = ZSTD_compressBound(dataSize);