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.
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
- Leermiddelen
- Documentatie
- Broncode
- API-referenties
- Product ondersteuning
- Gratis ondersteuning
- Betaalde ondersteuning
- Bloggen
- Release-opmerkingen
- Waarom Aspose.Zip voor Python.Net?
- Klantenlijst
- Succesverhalen