Overzicht

Onze bibliotheek maakt voor sommige formaten multi-stream-compressie mogelijk. Hiermee kunt u de snelheid van de datacompressie aanzienlijk verhogen.

Parallellisatie van BZIP2-, LZIP- en XZ-archieven

Het aantal compressiethreads kan worden ingesteld via de eigenschap "compression threads" van de overeenkomstige instellingenklasse. De standaardwaarde is 1 en compressie wordt dus uitgevoerd op een enkele thread. Als u echter een waarde groter dan één instelt, gebruikt het algoritme het overeenkomstige aantal processorkernen

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")

In deze voorbeelden voeren de Python-codefragmenten vergelijkbare acties uit voor het maken van archieven, waarbij ze alleen verschillen in de gebruikte compressieformaten. Meestal volgen ze deze stappen:

  • Maak een instellingenobject dat specifiek is voor het archiefformaat.
  • Stel het aantal parallelliteitsstromen voor compressie in.
  • Er wordt een archiefobject gemaakt. in de context met, wat ervoor zorgt dat het archief automatisch wordt gesloten nadat de bewerkingen zijn voltooid.
  • Geef de gegevensbron op die aan het archief moet worden toegevoegd.
  • Sla het archief op in het juiste formaat met behulp van de geconfigureerde instellingen.

LZMA2-compressie en multithreading in 7Z-archieven

Dit voorbeeld laat zien hoe u een 7z-archief maakt met behulp van het bestand data.bin. We gebruiken het LZMA2-compressie-algoritme met vier streams om gegevens efficiënt te comprimeren.

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")

Deze code creëert een 7z-archief door de gegevens uit het data.bin-bestand te lezen, met behulp van SevenZipLZMA2CompressionSettings in plaats van de instellingen voor Bzip2, Lzip of XZ, en het LZMA2-compressie-algoritme met vier threads voor compressie. Het gebruikt de create_entry-methode van SevenZipArchive in plaats van de set_source-methode.

Versnel ZIP-archivering met parallelle compressie

Het maken van een ZIP-archief kan op instapniveau worden geparallelliseerd. Gebruik hiervoor de ParallelOptions-instantie en de bijbehorende eigenschappen

    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)

De belangrijkste kenmerken zijn:

  • Het gebruik van ParallelOptions om parallelle compressie in het geheugen te configureren.
  • Het gebruik van ArchiveSaveOptions voor algemene opslaginstellingen.
  • Het gebruik van de create_entries-methode om bestanden toe te voegen van de map ~/Data naar het archief.
Raadpleeg de documentatie voor een beter begrip van de betekenis van de opsommingswaarden van ParallelCompressionMode. Speel met deze waarden om expliciet het beste resultaat voor uw doeleinden en hardwareconfiguratie te bereiken.

Andere ondersteunde Aspose.ZIP voor Python.Net API-functies

Met de Aspose.ZIP-bibliotheek in Python.Net kunt u naadloos verschillende taken uitvoeren die verband houden met ZIP-bestandsdocumenten. Of u nu formaten moet converteren, bestanden moet samenvoegen, inhoud moet bewerken of gegevens moet extraheren, Aspose.ZIP biedt uitgebreide functionaliteit om uw workflow te stroomlijnen en de productiviteit te verbeteren.

  

Support and Learning Resources

  
  

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