Přehled

Naše knihovna umožňuje u některých formátů víceproudovou kompresi. To umožňuje výrazně zvýšit rychlost komprese dat.

Paralelizace archivů BZIP2, LZIP a XZ

Počet kompresních vláken lze nastavit pomocí vlastnosti “kompresní vlákna” odpovídající třídy nastavení. Výchozí hodnota je 1 a komprese se tedy provádí na jednom vláknu. Pokud však nastavíte hodnotu větší než jedna, algoritmus použije odpovídající počet procesorových jader

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

V těchto příkladech provádějí fragmenty kódu Python podobné akce pro vytváření archivů, liší se pouze použitými kompresními formáty. Obvykle se řídí těmito kroky:

  • Vytvořte objekt nastavení specifický pro formát archivu.
  • Nastavte počet paralelních proudů pro kompresi.
  • Vytvoří se objekt archivu. v kontextu s, který zajistí automatické uzavření archivu po dokončení operací.
  • Určete zdroj dat, který se má do archivu přidat.
  • Uložte archiv ve vhodném formátu pomocí nakonfigurovaná nastavení.

LZMA2 komprese a multithreading v 7Z archivech

Tento příklad ukazuje, jak vytvořit archiv 7z pomocí souboru data.bin. K efektivní kompresi dat používáme kompresní algoritmus LZMA2 se čtyřmi proudy.

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

Tento kód vytvoří 7z archiv načtením dat ze souboru data.bin pomocí SevenZipLZMA2CompressionSettings namísto nastavení pro Bzip2, Lzip nebo XZ a kompresního algoritmu LZMA2 se čtyřmi vlákny pro kompresi. Místo metody set_source používá metodu create_entry SevenZipArchive.

Zrychlete archivaci ZIP pomocí paralelní komprese

Vytváření ZIP archivu lze paralelizovat na vstupní úrovni. K tomu použijte instanci ParallelOptions a její vlastnosti

    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)

Hlavní funkce jsou:

  • Použití ParallelOptions ke konfiguraci paralelní komprese v paměti.
  • Použití ArchiveSaveOptions pro obecná nastavení ukládání.
  • Použití metody create_entries pro přidávání souborů z adresář ~/Data do archivu.
Pro lepší pochopení významu hodnot výčtu ParallelCompressionMode si prosím přečtěte dokumentaci. Pohrajte si s těmito hodnotami, abyste dosáhli nejlepšího výsledku výslovně pro vaše účely a konfiguraci hardwaru.

Další podporované funkce Aspose.ZIP pro Python.Net API

S knihovnou Aspose.ZIP v Python.Net můžete bez problémů zvládnout různé úkoly související s dokumenty souborů ZIP. Ať už potřebujete převádět formáty, slučovat soubory, upravovat obsah nebo extrahovat data, Aspose.ZIP poskytuje komplexní funkce pro zefektivnění vašeho pracovního postupu a zvýšení produktivity.

  

Support and Learning Resources

  
  

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