Ringkasan

Perpustakaan kami mengizinkan kompresi multi-aliran untuk beberapa format. Ini memungkinkan Anda meningkatkan kecepatan kompresi data secara signifikan.

Memparalelkan Arsip BZIP2, LZIP, dan XZ

Jumlah thread kompresi dapat diatur melalui properti "benang kompresi" dari kelas pengaturan yang sesuai. Nilai defaultnya adalah 1, dan kompresi dilakukan pada satu thread. Namun, jika Anda menetapkan nilai lebih besar dari satu, algoritme akan menggunakan jumlah inti prosesor yang sesuai

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

Dalam contoh ini, cuplikan kode Python melakukan tindakan serupa untuk membuat arsip, hanya berbeda dalam format kompresi yang digunakan. Mereka biasanya mengikuti langkah-langkah berikut:

  • Buat objek pengaturan khusus untuk format arsip.
  • Tetapkan jumlah aliran paralelisme untuk kompresi.
  • Objek arsip dibuat dalam konteks dengan, yang memastikan penutupan arsip secara otomatis setelah operasi selesai.
  • Tentukan sumber data yang akan ditambahkan ke arsip.
  • Simpan arsip dalam format yang sesuai menggunakan pengaturan yang dikonfigurasi.

Kompresi LZMA2 dan Multithreading di Arsip 7Z

Contoh ini menunjukkan cara membuat arsip 7z menggunakan file data.bin. Kami menggunakan algoritma kompresi LZMA2 dengan empat aliran untuk mengompresi data secara efisien.

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

Kode ini membuat arsip 7z dengan membaca data dari file data.bin, menggunakan SevenZipLZMA2CompressionSettings alih-alih pengaturan untuk Bzip2, Lzip, atau XZ, dan algoritma kompresi LZMA2 dengan empat thread untuk kompresi. Ia menggunakan metode create_entry dari SevenZipArchive, bukan metode set_source.

Mempercepat Pengarsipan ZIP dengan Kompresi Paralel

Pembuatan arsip ZIP dapat diparalelkan pada tingkat awal. Untuk melakukannya, gunakan instance ParallelOptions dan propertinya

    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)

Fitur utamanya adalah:

  • Menggunakan ParallelOptions untuk mengonfigurasi kompresi paralel dalam memori.
  • Menggunakan ArchiveSaveOptions untuk pengaturan penyimpanan umum.
  • Menggunakan metode create_entries untuk menambahkan file dari direktori ~/Data ke arsip.
Silakan merujuk ke dokumentasi untuk lebih memahami arti nilai enumerasi ParallelCompressionMode. Mainkan nilai-nilai ini untuk mencapai hasil terbaik secara eksplisit untuk tujuan dan konfigurasi perangkat keras Anda.

Aspose.ZIP Lain yang Didukung untuk Fitur API Python.Net

Dengan pustaka Aspose.ZIP di Python.Net, Anda dapat menangani berbagai tugas yang terkait dengan dokumen file ZIP dengan lancar. Baik Anda perlu mengonversi format, menggabungkan file, mengedit konten, atau mengekstrak data, Aspose.ZIP menyediakan fungsionalitas komprehensif untuk menyederhanakan alur kerja Anda dan meningkatkan produktivitas.

  

Support and Learning Resources

  
  

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