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.
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
- Sumber Belajar
- Dokumentasi
- Kode sumber
- Referensi API
- Dukungan Produk
- Dukungan Gratis
- Dukungan Berbayar
- Blog
- Catatan Rilis
- Mengapa Aspose.Zip untuk Python.Net?
- Daftar Pelanggan
- Cerita-cerita sukses