Överblick
Medan de flesta komprimeringsalgoritmer ursprungligen designades för enkärniga processorer, erbjuder flerkärniga eran betydande potential för snabbare. Aspose.ZIP utnyttjar detta genom att tillhandahålla multi-core optimering för vissa arkivformat.Parallellisering av BZIP2-, LZIP- och XZ-arkiv
Parallellisering är aktiverat för vissa arkivformat på grund av deras inneboende blockbaserade natur. Aspose.ZIP utnyttjar detta genom att använda en gemensam komprimeringsmetod med flera kärnor på programnivå. Användare kan styra antalet trådar som används för komprimering via metoden setCompressionThreads(int) . När detta värde är inställt på större än ett, kommer flera CPU-kärnor att användas för snabbare komprimering.
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");
}
I exemplet visar 1 att man skapar ett Bzip2-arkiv med klassen Bzip2Archive. Först anger vi källfilen som ska komprimeras med metoden archive.setSource("data.bin"). Därefter kan olika komprimeringsalternativ, inklusive antalet komprimeringsströmmar, konfigureras med Bzip2SaveOptions-objektet. Slutligen sparas arkivet med de angivna alternativen med metoden archive.save("archive.bz2", options).
I det andra exemplet konfigurerar vi komprimeringsparametrarna för xz-formatet innan vi skapar arkivet. Denna konfiguration görs med XzArchiveSettings-objektet, där vi anger det önskade antalet komprimeringsströmmar. Sedan skapas ett nytt XzArchive med dessa inställningar skickade som ett argument. Därefter ställs källfilen ("data.bin") in som källa för komprimering, och arkivet sparas med metoden archive.save("archive.xz").
I det tredje exemplet demonstrerar vi att skapa ett LZ-arkiv med LzipArchiveSettings-objektet. Först ställer vi in storleken på ordboken som används av LZMA-komprimering. Därefter ställer vi in antalet trådar till 4. Efter det skapar vi ett LzipArchive-objekt och skickar LzipArchiveSettings-objektet till konstruktorn. Slutligen anger vi filen som ska arkiveras och sparar arkivet.
LZMA2-komprimering och multitrådning i 7Z-arkiv
En av komprimeringsmetoderna inom 7z-formatet, LZMA2 , stöder flertrådskomprimering. I likhet med tidigare arkivformat kan du styra antalet trådar som används med metoden 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");
}
- Kompressionsinställningar: Vi börjar med att skapa komprimeringsinställningar med SevenZipLZMA2CompressionSettings-objektet. I det här exemplet är antalet komprimeringsströmmar inställt på 4.
- Entry Settings: Därefter skapas ett SevenZipEntrySettings-objekt och tilldelas de komprimeringsinställningar som vi definierade tidigare. Det här steget konfigurerar komprimering för varje enskild post i arkivet.
- Skapa arkivet: Med alla inställningar på plats skapar vi ett SevenZipArchive-objekt och skickar in postinställningarna till det. Detta arkiv kommer att innehålla en enda post med namnet "first.bin" som motsvarar källfilen "data.bin".
- Spara arkivet: Slutligen sparas det skapade arkivet som "result.7z" med hjälp av save("result.7z")-metoden.
Snabba upp ZIP-arkivering med parallell komprimering
Parallellisering för snabbare bearbetning har implementerats på block- eller algoritmnivå för tidigare arkivformat i Aspose.ZIP. ZIP-arkiv erbjuder dock en unik fördel: parallellisering på ingångsnivå under lagring. För att aktivera detta, instansiera ett ParallelOptions -objekt när du sparar ZIP-arkivet.
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);
}
Den här koden använder parallell komprimering för att optimera arkivskapandet och skapar ett ZIP-arkiv med namnet "archive.zip" från alla filer i mappen "C:\Data".
Andra Aspose.ZIP för Java API-funktioner som stöds
Med Aspose.ZIP-biblioteket i Java kan du sömlöst hantera olika uppgifter relaterade till ZIP-fildokument. Oavsett om du behöver konvertera format, slå samman filer, redigera innehåll eller extrahera data, erbjuder Aspose.ZIP omfattande funktionalitet för att effektivisera ditt arbetsflöde och förbättra produktiviteten.
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