Genel Bakış

Kitaplığımız bazı formatlar için çoklu akış sıkıştırmasına izin verir. Bu, veri sıkıştırma hızını önemli ölçüde artırmanıza olanak tanır.

BZIP2, LZIP ve XZ Arşivlerini Paralelleştirme

Sıkıştırma iş parçacıklarının sayısı, ilgili ayarlar sınıfının "sıkıştırma iş parçacıkları" özelliği aracılığıyla ayarlanabilir. Varsayılan değer L’dir ve sıkıştırma bu nedenle tek bir iş parçacığında gerçekleştirilir. Ancak birden büyük bir değer ayarlarsanız algoritma karşılık gelen sayıda işlemci çekirdeğini kullanır

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

Bu örneklerde, Python kod parçacıkları arşiv oluşturmak için benzer eylemler gerçekleştirir, yalnızca kullanılan sıkıştırma formatlarında farklılık gösterir. Genellikle şu adımları izlerler:

  • Arşiv formatına özel bir ayarlar nesnesi oluşturun.
  • Sıkıştırma için paralellik akışlarının sayısını ayarlayın.
  • Bir arşiv nesnesi oluşturulur. İşlemler tamamlandıktan sonra arşivin otomatik olarak kapatılmasını sağlayan bağlamda.
  • Arşive eklenecek veri kaynağını belirtin.
  • Arşivi kullanarak arşivi uygun formatta kaydedin. yapılandırılmış ayarlar.

7Z Arşivlerinde LZMA2 Sıkıştırma ve Çoklu İş Parçacığı Oluşturma

Bu örnek, data.bin dosyasını kullanarak 7z arşivinin nasıl oluşturulacağını gösterir. Verileri verimli bir şekilde sıkıştırmak için dört akışlı LZMA2 sıkıştırma algoritmasını kullanıyoruz.

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

Bu kod, data.bin dosyasındaki verileri okuyarak, Bzip2, Lzip veya XZ ayarları yerine SevenZipLZMA2CompressionSettings’i ve sıkıştırma için dört iş parçacığına sahip LZMA2 sıkıştırma algoritmasını kullanarak bir 7z arşivi oluşturur. Set_source yöntemi yerine SevenZipArchive’ın create_entry yöntemini kullanır.

Paralel Sıkıştırmayla ZIP Arşivlemeyi Hızlandırın

ZIP arşivinin oluşturulması giriş seviyesinde paralelleştirilebilir. Bunu yapmak için ParallelOptions örneğini ve özelliklerini kullanı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)

Ana özellikler şunlardır:

  • Paralel bellek içi sıkıştırmayı yapılandırmak için ParallelOptions’ı kullanma.
  • Genel kaydetme ayarları için ArchiveSaveOptions’ı kullanma.
  • Dosyaları şuradan eklemek için create_entries yöntemini kullanma. ~/Data dizinini arşive ekleyin.
ParallelCompressionMode numaralandırma değerlerinin anlamını daha iyi anlamak için lütfen belgelere bakın. Amaçlarınız ve donanım yapılandırmanız için açıkça en iyi sonuca ulaşmak için bu değerlerle oynayın.

Python.Net API için Desteklenen Diğer Aspose.ZIP Özellikleri

Python.Net’ teki Aspose.ZIP kütüphanesi ile ZIP dosyası belgeleriyle ilgili çeşitli görevleri sorunsuz bir şekilde gerçekleştirebilirsiniz. İster formatları dönüştürmeniz, dosyaları birleştirmeniz, içerikleri düzenlemeniz veya veri çıkarmanız gerekiyorsa Aspose.ZIP, iş akışınızı kolaylaştırmak ve üretkenliğinizi artırmak için kapsamlı işlevsellik sağlar.

  

Support and Learning Resources

  
  

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