Enable parallel compression with zstandard. Fixes #2324

This commit is contained in:
grossmj 2026-02-16 18:28:11 +08:00
parent 74bc3b5144
commit 28e7c014c8
No known key found for this signature in database
GPG Key ID: 1E7DD6DBB53FF3D7
3 changed files with 5 additions and 7 deletions

View File

@ -17,7 +17,6 @@
import os
import sys
import stat
import json
import uuid
import shutil

View File

@ -71,10 +71,9 @@ def _get_compressor(compress_type, compresslevel=None):
elif compress_type == ZIP_ZSTANDARD:
import zstandard as zstd
if compresslevel is not None:
#params = zstd.ZstdCompressionParameters.from_level(compresslevel, threads=-1, enable_ldm=True, window_log=31)
#return zstd.ZstdCompressor(compression_params=params).compressobj()
return zstd.ZstdCompressor(level=compresslevel).compressobj()
return zstd.ZstdCompressor().compressobj()
# for threads param a value of -1 means to set the number of threads to the number of detected logical CPUs
return zstd.ZstdCompressor(level=compresslevel, threads=-1).compressobj()
return zstd.ZstdCompressor(threads=-1).compressobj()
else:
return None

View File

@ -42,7 +42,7 @@ if 'compresslevel' in inspect.signature(zipfile._get_compressor).parameters:
if compress_type == zipfile.ZIP_ZSTANDARD:
if compresslevel is None:
compresslevel = 3
return zstd.ZstdCompressor(level=compresslevel, threads=12).compressobj()
return zstd.ZstdCompressor(level=compresslevel, threads=-1).compressobj()
else:
return patch.originals['_get_compressor'](compress_type, compresslevel=compresslevel)
else:
@ -51,7 +51,7 @@ else:
if compress_type == zipfile.ZIP_ZSTANDARD:
if compresslevel is None:
compresslevel = 3
return zstd.ZstdCompressor(level=compresslevel, threads=12).compressobj()
return zstd.ZstdCompressor(level=compresslevel, threads=-1).compressobj()
else:
return patch.originals['_get_compressor'](compress_type)