개요

우리 라이브러리는 일부 형식에 대해 다중 스트림 압축을 허용합니다. 이를 통해 데이터 압축 속도를 크게 높일 수 있습니다.

BZIP2, LZIP 및 XZ 아카이브 병렬화

압축 스레드 수는 해당 설정 클래스의 "압축 스레드" 속성을 통해 설정할 수 있습니다. 기본값은 1이므로 단일 스레드에서 압축이 수행됩니다. 그러나 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 코드 조각은 사용된 압축 형식만 다를 뿐 아카이브 생성을 위해 유사한 작업을 수행합니다. 일반적으로 다음 단계를 따릅니다.

  • 아카이브 형식과 관련된 설정 개체를 생성합니다.
  • 압축을 위한 병렬 처리 스트림 수를 설정합니다.
  • 아카이브 개체가 생성됩니다. 작업이 완료된 후 아카이브를 자동으로 닫는 것을 보장하는 컨텍스트에서.
  • 아카이브에 추가할 데이터 소스를 지정합니다.
  • 다음을 사용하여 적절한 형식으로 아카이브를 저장합니다. 구성된 설정입니다.

7Z 아카이브의 LZMA2 압축 및 멀티스레딩

이 예에서는 data.bin 파일을 사용하여 7z 아카이브를 생성하는 방법을 보여줍니다. 우리는 데이터를 효율적으로 압축하기 위해 4개의 스트림이 있는 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")

이 코드는 Bzip2, Lzip 또는 XZ에 대한 설정 대신 SevenZipLZMA2CompressionSettings를 사용하고 압축을 위한 4개의 스레드가 있는 LZMA2 압축 알고리즘을 사용하여 data.bin 파일에서 데이터를 읽어 7z 아카이브를 생성합니다. set_source 메소드 대신 SevenZipArchive의 create_entry 메소드를 사용합니다.

병렬 압축으로 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 디렉터리를 아카이브에 추가합니다.
ParallelCompressionMode 열거 값의 의미를 더 잘 이해하려면 설명서를 참조하세요. 귀하의 목적과 하드웨어 구성에 대해 명시적으로 최상의 결과를 얻으려면 이러한 값을 사용하십시오.

Python.Net API 기능에 대해 지원되는 기타 Aspose.ZIP

Python.Net의 Aspose.ZIP 라이브러리를 사용하면 ZIP 파일 문서와 관련된 다양한 작업을 원활하게 처리할 수 있습니다. 형식 변환, 파일 병합, 콘텐츠 편집 또는 데이터 추출이 필요한 경우 Aspose.ZIP은 작업 흐름을 간소화하고 생산성을 향상시키는 포괄적인 기능을 제공합니다.

  

Support and Learning Resources

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: