Tổng quan
Thư viện của chúng tôi cho phép nén nhiều luồng đối với một số định dạng. Điều này cho phép bạn tăng đáng kể tốc độ nén dữ liệu.Song song lưu trữ BZIP2, LZIP và Xperia
Số lượng luồng nén có thể được đặt thông qua thuộc tính "luồng nén" của lớp cài đặt tương ứng. Giá trị mặc định là 1 và do đó việc nén được thực hiện trên một luồng. Tuy nhiên, nếu bạn đặt giá trị lớn hơn một, thuật toán sẽ sử dụng số lõi xử lý tương ứng
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")
Trong các ví dụ này, đoạn mã Python thực hiện các hành động tương tự để tạo kho lưu trữ, chỉ khác nhau ở định dạng nén được sử dụng. Họ thường làm theo các bước sau:
- Tạo một đối tượng cài đặt cụ thể cho định dạng lưu trữ.
- Đặt số lượng luồng song song để nén.
- Một đối tượng lưu trữ được tạo trong ngữ cảnh với, điều này đảm bảo tự động đóng kho lưu trữ sau khi hoàn tất các thao tác.
- Chỉ định nguồn dữ liệu sẽ được thêm vào kho lưu trữ.
- Lưu kho lưu trữ ở định dạng thích hợp bằng cách sử dụng các cài đặt đã định cấu hình.
Nén LZMA2 và đa luồng trong kho lưu trữ 7Z
Ví dụ này minh họa cách tạo một kho lưu trữ 7z bằng tệp data.bin. Chúng tôi sử dụng thuật toán nén LZMA2 với bốn luồng để nén dữ liệu một cách hiệu quả.
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")
Mã này tạo bản lưu trữ 7z bằng cách đọc dữ liệu từ tệp data.bin, sử dụng SevenZipLZMA2CompressionSettings thay vì cài đặt cho Bzip2, Lzip hoặc Xperia và thuật toán nén LZMA2 với bốn luồng để nén. Nó sử dụng phương thức create_entry của SevenZipArchive thay vì phương thức set_source.
Tăng tốc độ lưu trữ ZIP bằng tính năng nén song song
Việc tạo một kho lưu trữ ZIP có thể được thực hiện song song ở cấp độ đầu vào. Để thực hiện việc này, hãy sử dụng phiên bản ParallelOptions và các thuộc tính của nó
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)
Các tính năng chính là:
- Sử dụng ParallelOptions để định cấu hình nén song song trong bộ nhớ.
- Sử dụng ArchiveSaveOptions cho cài đặt lưu chung.
- Sử dụng phương thức create_entries để thêm tệp từ thư mục ~/Data vào kho lưu trữ.
Aspose.ZIP được hỗ trợ khác cho các tính năng API Python.Net
Với thư viện Aspose.ZIP trong Python.Net, bạn có thể xử lý liền mạch các tác vụ khác nhau liên quan đến tài liệu tệp ZIP. Cho dù bạn cần chuyển đổi định dạng, hợp nhất tệp, chỉnh sửa nội dung hay trích xuất dữ liệu, Aspose.ZIP đều cung cấp chức năng toàn diện để hợp lý hóa quy trình làm việc của bạn và nâng cao năng suất.
Support and Learning Resources
- Tài nguyên học tập
- Tài liệu
- Mã nguồn
- Tài liệu tham khảo API
- Hỗ trợ sản phẩm
- Hỗ trợ miễn phí
- Hỗ trợ trả phí
- Blog
- Ghi chú phát hành
- Tại sao Aspose.Zip lại dành cho Python.Net?
- Danh sách khách hàng
- Câu chuyện thành công