Á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
- Learning Resources
- Documentation
- Source Code
- API References
- Tutorial Videos
- Product Support
- Free Support
- Paid Support
- Blog
- Release Notes
- Why Aspose.ZIP for Java?
- Customers List
- Success Stories