सिंहावलोकन

जबकि अधिकांश संपीड़न एल्गोरिदम मूल रूप से सिंगल-कोर प्रोसेसर के लिए डिज़ाइन किए गए थे, मल्टी-कोर युग स्पीडअप के लिए महत्वपूर्ण क्षमता प्रदान करता है। Aspose.ZIP कुछ संग्रह प्रारूपों के लिए मल्टी-कोर अनुकूलन प्रदान करके इसका लाभ उठाता है।

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

कुछ संग्रह प्रारूपों के लिए उनकी अंतर्निहित ब्लॉक-आधारित प्रकृति के कारण समानांतरीकरण सक्षम है। Aspose.ZIP प्रोग्राम स्तर पर एक सामान्य मल्टी-कोर संपीड़न दृष्टिकोण को नियोजित करके इसका लाभ उठाता है। उपयोगकर्ता setCompressionThreads(int) विधि के माध्यम से संपीड़न के लिए उपयोग किए जाने वाले थ्रेड्स की संख्या को नियंत्रित कर सकते हैं। जब यह मान एक से अधिक पर सेट किया जाता है, तो तेज़ संपीड़न के लिए एकाधिक सीपीयू कोर का उपयोग किया जाएगा।

Parallel compression to BZIP2

    try (Bzip2Archive archive = new Bzip2Archive()) {
        archive.setSource("data.bin");
        Bzip2SaveOptions options = new Bzip2SaveOptions();
        options.setCompressionThreads(4);
        archive.save("archive.bz2", options);
    }

Parallel compression to XZ

    XzArchiveSettings settings = new XzArchiveSettings();
    settings.setCompressionThreads(4);
    try (XzArchive archive = new XzArchive(settings)) {
        archive.setSource("data.bin");
        archive.save("archive.xz");
    }

Parallel compression to LZ

    LzipArchiveSettings settings = new LzipArchiveSettings(16777216);
    settings.setCompressionThreads(4);
    try (LzipArchive archive = new LzipArchive(settings)) {
        archive.setSource("data.bin");
        archive.save("archive.lz");
    }

उदाहरण 1 में Bzip2Archive वर्ग का उपयोग करके Bzip2 संग्रह बनाना दर्शाया गया है। सबसे पहले, हम Archive.setSource(‘data.bin’) विधि का उपयोग करके संपीड़ित होने वाली स्रोत फ़ाइल को निर्दिष्ट करते हैं। इसके बाद, संपीड़न धाराओं की संख्या सहित विभिन्न संपीड़न विकल्पों को Bzip2SaveOptions ऑब्जेक्ट का उपयोग करके कॉन्फ़िगर किया जा सकता है। अंत में, Archive.save(‘archive.bz2’, option) विधि का उपयोग करके निर्दिष्ट विकल्पों के साथ संग्रह को सहेजा जाता है।
दूसरे उदाहरण में, हम संग्रह बनाने से पहले xz प्रारूप के लिए संपीड़न पैरामीटर कॉन्फ़िगर करते हैं। यह कॉन्फ़िगरेशन XzArchiveSettings ऑब्जेक्ट का उपयोग करके किया जाता है, जहां हम संपीड़न धाराओं की वांछित संख्या निर्दिष्ट करते हैं। फिर, एक तर्क के रूप में पारित इन सेटिंग्स के साथ एक नया XzArchive बनाया जाता है। इसके बाद, स्रोत फ़ाइल ("data.bin") को संपीड़न के लिए स्रोत के रूप में सेट किया जाता है, और संग्रह को Archive.save("archive.xz") विधि का उपयोग करके सहेजा जाता है।
तीसरे उदाहरण में, हम LzipArchiveSettings ऑब्जेक्ट का उपयोग करके एक LZ संग्रह बनाने का प्रदर्शन करते हैं। सबसे पहले, हम LZMA संपीड़न द्वारा प्रयुक्त शब्दकोश का आकार निर्धारित करते हैं। इसके बाद, हम थ्रेड्स की संख्या 4 पर सेट करते हैं। उसके बाद, हम एक LzipArchive ऑब्जेक्ट बनाते हैं और LzipArchiveSettings ऑब्जेक्ट को कंस्ट्रक्टर को पास करते हैं। अंत में, हम संग्रहीत की जाने वाली फ़ाइल को निर्दिष्ट करते हैं और संग्रह को सहेजते हैं।

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

7z प्रारूप के भीतर संपीड़न विधियों में से एक, LZMA2 , मल्टीथ्रेडेड संपीड़न का समर्थन करता है। पिछले संग्रह प्रारूपों के समान, आप setCompressionThreads(int) पद्धति से उपयोग किए गए थ्रेड्स की संख्या को नियंत्रित कर सकते हैं।

    SevenZipLZMA2CompressionSettings compSettings = new SevenZipLZMA2CompressionSettings();
    compSettings.setCompressionThreads(4);
    SevenZipEntrySettings settings = new SevenZipEntrySettings(compSettings);
    try (SevenZipArchive archive = new SevenZipArchive(settings)) {
        archive.createEntry("first.bin", "data.bin");
        archive.save("result.7z");
    }
  • संपीड़न सेटिंग्स: हम सेवनज़िपLZMA2CompressionSettings ऑब्जेक्ट का उपयोग करके संपीड़न सेटिंग्स बनाकर शुरू करते हैं। इस उदाहरण में, कंप्रेशन स्ट्रीम की संख्या 4 पर सेट है।
  • एंट्री सेटिंग्स: इसके बाद, एक सेवनज़िपएंट्रीसेटिंग्स ऑब्जेक्ट बनाया जाता है और हमारे द्वारा पहले परिभाषित कंप्रेशन सेटिंग्स को असाइन किया जाता है। यह चरण संग्रह के भीतर प्रत्येक व्यक्तिगत रिकॉर्ड के लिए संपीड़न को कॉन्फ़िगर करता है।
  • संग्रह बनाना: सभी सेटिंग्स के साथ, हम एक सेवनज़िपआर्काइव ऑब्जेक्ट बनाते हैं और इसे प्रविष्टि सेटिंग्स पास करते हैं। इस संग्रह में "first.bin" नाम की एक एकल प्रविष्टि होगी जो स्रोत फ़ाइल "data.bin" से मेल खाती है।
  • संग्रह को सहेजना: अंत में, बनाया गया संग्रह सहेजा जाता है save("result.7z") विधि का उपयोग करके "result.7z" के रूप में।

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

तेज प्रसंस्करण के लिए समानांतरीकरण को Aspose.ZIP में पिछले संग्रह प्रारूपों के लिए ब्लॉक या एल्गोरिदम स्तर पर लागू किया गया है। हालाँकि, ज़िप अभिलेखागार एक अनूठा लाभ प्रदान करता है: बचत के दौरान प्रवेश स्तर का समानांतरीकरण। इसे सक्षम करने के लिए, ज़िप संग्रह को सहेजते समय एक ParallelOptions ऑब्जेक्ट को तुरंत चालू करें।

    try (Archive archive = new Archive()) {
        archive.createEntries("C:\\Data");
        ParallelOptions parOptions = new ParallelOptions();
        parOptions.setParallelCompressInMemory(ParallelCompressionMode.Auto);
        ArchiveSaveOptions options = new ArchiveSaveOptions();
        options.setParallelOptions(parOptions);
        archive.save("archive.zip", options);
    } 

यह कोड संग्रह निर्माण को अनुकूलित करने के लिए समानांतर संपीड़न का उपयोग करता है और "C:\Data" फ़ोल्डर के भीतर सभी फ़ाइलों से "archive.zip" नामक एक ज़िप संग्रह बनाता है।

जावा एपीआई सुविधाओं के लिए अन्य समर्थित Aspose.ZIP

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

  

Support and Learning Resources

  
  

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