Áttekintés

Míg a legtöbb tömörítési algoritmust eredetileg egymagos processzorokhoz tervezték, a többmagos korszak jelentős lehetőséget kínál a gyorsításra. Az Aspose.ZIP ezt azáltal használja ki, hogy többmagos optimalizálást biztosít bizonyos archív formátumokhoz.

A BZIP2, LZIP és XZ archívumok párhuzamosítása

A párhuzamosítás engedélyezve van bizonyos archív formátumoknál, azok eredendő blokk alapú jellege miatt. Az Aspose.ZIP ezt a közös többmagos tömörítési megközelítést alkalmazza a program szintjén. A felhasználók a setCompressionThreads(int) metódussal szabályozhatják a tömörítéshez használt szálak számát. Ha ez az érték egynél nagyobbra van állítva, akkor több CPU-magot használnak fel a gyorsabb tömörítés érdekében.

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

Az 1. példa bemutatja a Bzip2 archívum létrehozását a Bzip2Archive osztály használatával. Először az archive.setSource(data.bin) metódussal adjuk meg a tömörítendő forrásfájlt. Ezután a Bzip2SaveOptions objektum segítségével különféle tömörítési beállításokat lehet beállítani, beleértve a tömörítési adatfolyamok számát. Végül az archívum a megadott opciókkal kerül mentésre az archive.save(archive.bz2, options) metódussal.
A második példában az archívum létrehozása előtt konfiguráljuk az xz formátum tömörítési paramétereit. Ez a konfiguráció az XzArchiveSettings objektum segítségével történik, ahol megadjuk a tömörítési folyamok kívánt számát. Ezután létrejön egy új XzArchive, amely ezeket a beállításokat argumentumként adja át. Ezt követően a forrásfájl (data.bin) lesz beállítva a tömörítés forrásaként, és az archívum mentése az archive.save(archive.xz) metódussal történik.
A harmadik példában egy LZ archívum létrehozását mutatjuk be az LzipArchiveSettings objektum használatával. Először beállítjuk az LZMA tömörítéshez használt szótár méretét. Ezután beállítjuk a szálak számát 4-re. Ezt követően létrehozunk egy LzipArchive objektumot, és átadjuk az LzipArchiveSettings objektumot a konstruktornak. Végül megadjuk az archiválandó fájlt és elmentjük az archívumot.

LZMA2 tömörítés és többszálú feldolgozás a 7Z archívumban

A 7z formátum egyik tömörítési módszere, az LZMA2 támogatja a többszálú tömörítést. A korábbi archív formátumokhoz hasonlóan a setCompressionThreads(int) metódussal szabályozhatja a használt szálak számát.

    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");
    }
  • Tömörítési beállítások: Kezdjük a tömörítési beállítások létrehozásával a SevenZipLZMA2CompressionSettings objektum használatával. Ebben a példában a tömörítési adatfolyamok száma 4.
  • Bejegyzési beállítások: Ezután létrejön egy SevenZipEntrySettings objektum, és hozzárendeljük a korábban meghatározott tömörítési beállításokat. Ez a lépés az archívum minden egyes rekordjához konfigurálja a tömörítést.
  • Az archívum létrehozása: Az összes beállítás mellett létrehozunk egy SevenZipArchive objektumot, és átadjuk neki a bejegyzés beállításait. Ez az archívum egyetlen „first.bin” nevű bejegyzést fog tartalmazni, amely a „data.bin” forrásfájlnak felel meg.
  • Archívum mentése: Végül a létrehozott archívum mentésre kerül. mint "result.7z" a save("result.7z") metódussal.

Gyorsítsa fel a ZIP archiválást párhuzamos tömörítéssel

A gyorsabb feldolgozás érdekében a párhuzamosítást blokk- vagy algoritmusszinten valósították meg az Aspose.ZIP korábbi archív formátumaihoz. A ZIP archívumok azonban egyedülálló előnyt kínálnak: a belépő szintű párhuzamosítást a mentés során. Ennek engedélyezéséhez a ZIP archívum mentésekor példányosítson egy ParallelOptions objektumot.

    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);
    } 

Ez a kód párhuzamos tömörítést használ az archívum létrehozásának optimalizálására, és létrehoz egy "archive.zip" nevű ZIP-archívumot a "C:\Data" mappában lévő összes fájlból.

Egyéb támogatott Aspose.ZIP a Java API-funkciókhoz

A Java Aspose.ZIP könyvtárával zökkenőmentesen kezelheti a ZIP fájlokkal kapcsolatos különféle feladatokat. Legyen szó formátumok konvertálására, fájlok egyesítésére, tartalom szerkesztésére vagy adatok kibontására, az Aspose.ZIP átfogó funkcionalitást biztosít a munkafolyamat egyszerűsítéséhez és a termelékenység növeléséhez.

  

Support and Learning Resources

  
  

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