Обзор
Наша библиотека позволяет осуществлять многопоточное сжатие некоторых форматов. Это позволяет существенно увеличить скорость сжатия данных.Распараллеливание архивов BZIP2, LZIP и XZ
Количество потоков сжатия можно задать через свойство «потоки сжатия» соответствующего класса настроек. Значение по умолчанию — 1, поэтому сжатие выполняется в одном потоке. Однако если вы установите значение больше единицы, алгоритм будет использовать соответствующее количество ядер процессора.
Parallel compression to BZIP2
save_options = zp.bzip2.Bzip2SaveOptions()
save_options.compression_threads = 4
with zp.bzip2.Bzip2Archive() as archive:
archive.set_source("data.bin")
archive.save("archive.bz2", save_options)
Parallel compression to LZIP
# Will use 16Mb for dictionary:
settings = zp.lzip.LzipArchiveSettings(0x1000000)
settings.compression_threads = 4
with zp.lzip.LzipArchive(settings) as archive:
archive.set_source("data.bin")
archive.save("archive.lz")
Parallel compression to XZ
settings = zp.xz.settings.XzArchiveSettings()
settings.compression_threads = 4
with zp.xz.XzArchive(settings) as archive:
archive.set_source("data.bin")
archive.save("archive.xz")
В этих примерах фрагменты кода Python выполняют аналогичные действия по созданию архивов, отличаясь только используемыми форматами сжатия. Обычно они выполняют следующие шаги:
- Создайте объект настроек, специфичный для формата архива.
- Установите количество потоков параллелизма для сжатия.
- Создается объект архива. в контексте с, что обеспечивает автоматическое закрытие архива после завершения операций.
- Укажите источник данных, который будет добавлен в архив.
- Сохраните архив в соответствующем формате с помощью настроенные параметры.
Сжатие LZMA2 и многопоточность в архивах 7Z
В этом примере показано, как создать архив 7z с помощью файла data.bin. Мы используем алгоритм сжатия LZMA2 с четырьмя потоками для эффективного сжатия данных.
Parallel compression to 7Z LZMA2
compression_settings = zp.saving.SevenZipLZMA2CompressionSettings()
compression_settings.compression_threads = 4
entry_settings = zp.saving.SevenZipEntrySettings(compression_settings)
with zp.sevenzip.SevenZipArchive(entry_settings) as archive:
archive.create_entry("data.bin", "data.bin")
archive.save("result.7z")
Этот код создает архив 7z, считывая данные из файла data.bin, используя SevenZipLZMA2CompressionSettings вместо настроек для Bzip2, Lzip или XZ, а также алгоритм сжатия LZMA2 с четырьмя потоками для сжатия. Он использует метод create_entry SevenZipArchive вместо метода set_source.
Ускорьте ZIP-архивирование с помощью параллельного сжатия
Создание ZIP-архива можно распараллелить на начальном уровне. Для этого используйте экземпляр ParallelOptions и его свойства.
parallel_opt = zp.saving.ParallelOptions()
parallel_opt.parallel_compress_in_memory = zp.saving.ParallelCompressionMode.AUTO
save_opt = zp.saving.ArchiveSaveOptions()
save_opt.parallel_options = parallel_opt
with zp.Archive as archive:
archive.create_entries("~/Data")
archive.Save("archive.zip", save_opt)
Основные возможности:
- Использование ParallelOptions для настройки параллельного сжатия в памяти.
- Использование ArchiveSaveOptions для общих настроек сохранения.
- Использование метода create_entries для добавления файлов из каталог ~/Data в архив.
Другие поддерживаемые функции API Aspose.ZIP для Python.Net
С помощью библиотеки Aspose.ZIP в Python.Net вы можете легко решать различные задачи, связанные с документами в формате ZIP. Если вам нужно конвертировать форматы, объединять файлы, редактировать содержимое или извлекать данные, Aspose.ZIP предоставляет комплексные функциональные возможности для оптимизации вашего рабочего процесса и повышения производительности.
Support and Learning Resources
- Образовательные ресурсы
- Документация
- Исходный код
- Ссылки на API
- Поддержка продукта
- Бесплатная поддержка
- Платная поддержка
- Блог
- Примечания к выпуску
- Почему Aspose.Zip для Python.Net?
- Список клиентов
- Истории успеха