अवलोकन

हमारी लाइब्रेरी कुछ प्रारूपों के लिए मल्टी-स्ट्रीम संपीड़न की अनुमति देती है। यह आपको डेटा संपीड़न की गति को उल्लेखनीय रूप से बढ़ाने की अनुमति देता है।

BZIP2, LZIP और XZ अभिलेखागार को समानांतर करना

संपीड़न थ्रेड्स की संख्या संबंधित सेटिंग्स वर्ग की "संपीड़न थ्रेड्स" संपत्ति के माध्यम से निर्धारित की जा सकती है। डिफ़ॉल्ट मान 1 है, और संपीड़न इस प्रकार एक ही थ्रेड पर किया जाता है। हालाँकि, यदि आप एक से अधिक मान सेट करते हैं, तो एल्गोरिदम प्रोसेसर कोर की संबंधित संख्या का उपयोग करेगा

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

इन उदाहरणों में, पायथन कोड स्निपेट संग्रह बनाने के लिए समान क्रियाएं करते हैं, केवल उपयोग किए गए संपीड़न प्रारूपों में भिन्न होते हैं। वे आम तौर पर इन चरणों का पालन करते हैं:

  • संग्रह प्रारूप के लिए विशिष्ट सेटिंग ऑब्जेक्ट बनाएं।
  • संपीड़न के लिए समांतरता धाराओं की संख्या निर्धारित करें।
  • एक संग्रह ऑब्जेक्ट बनाया गया है के संदर्भ में, जो संचालन पूरा होने के बाद संग्रह को स्वचालित रूप से बंद करना सुनिश्चित करता है।
  • संग्रह में जोड़े जाने वाले डेटा स्रोत को निर्दिष्ट करें।
  • संग्रह का उपयोग करके उचित प्रारूप में सहेजें कॉन्फ़िगर की गई सेटिंग.

7Z अभिलेखागार में LZMA2 संपीड़न और मल्टीथ्रेडिंग

यह उदाहरण दर्शाता है कि data.bin फ़ाइल का उपयोग करके 7z संग्रह कैसे बनाया जाए। हम डेटा को कुशलतापूर्वक संपीड़ित करने के लिए चार धाराओं के साथ LZMA2 संपीड़न एल्गोरिदम का उपयोग करते हैं।

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

यह कोड data.bin फ़ाइल से डेटा को पढ़कर, Bzip2, Lzip, या XZ के लिए सेटिंग्स के बजाय सेवनज़िपLZMA2CompressionSettings और संपीड़न के लिए चार थ्रेड्स के साथ LZMA2 संपीड़न एल्गोरिथ्म का उपयोग करके एक 7z संग्रह बनाता है। यह set_source विधि के बजाय सेवनज़िपआर्काइव की create_entry विधि का उपयोग करता है।

समानांतर संपीड़न के साथ ज़िप संग्रहण को गति दें

ज़िप संग्रह का निर्माण प्रवेश स्तर पर समानांतर किया जा सकता है। ऐसा करने के लिए, ParallelOptions उदाहरण और उसके गुणों का उपयोग करें

    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)

मुख्य विशेषताएं हैं:

  • समानांतर इन-मेमोरी संपीड़न को कॉन्फ़िगर करने के लिए ParallelOptions का उपयोग करना।
  • सामान्य सेव सेटिंग्स के लिए ArchiveSaveOptions का उपयोग करना।
  • फ़ाइलों को जोड़ने के लिए create_entries विधि का उपयोग करना। संग्रह में ~/डेटा निर्देशिका।
कृपया ParallelCompressionMode गणना मानों के अर्थ को बेहतर ढंग से समझने के लिए दस्तावेज़ देखें। अपने उद्देश्यों और हार्डवेयर कॉन्फ़िगरेशन के लिए स्पष्ट रूप से सर्वोत्तम परिणाम तक पहुंचने के लिए इन मूल्यों के साथ खेलें।

Python.Net API सुविधाओं के लिए अन्य समर्थित Aspose.ZIP

Python.Net में Aspose.ZIP लाइब्रेरी के साथ, आप ZIP फ़ाइल दस्तावेज़ों से संबंधित विभिन्न कार्यों को सहजता से संभाल सकते हैं। चाहे आपको प्रारूप परिवर्तित करने, फ़ाइलों को मर्ज करने, सामग्री संपादित करने या डेटा निकालने की आवश्यकता हो, Aspose.ZIP आपके वर्कफ़्लो को सुव्यवस्थित करने और उत्पादकता बढ़ाने के लिए व्यापक कार्यक्षमता प्रदान करता है।

  
  

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