Parallel bzip2 compression

Using Multiple CPU Cores for Bzip2 Compression

BZIP2 compresses data by splitting it into blocks and processing each block independently. Aspose.ZIP offers a feature that allows you to utilize multiple CPU cores to handle these blocks in parallel, significantly speeding up the compression process for large files.

By default, compression is single-threaded, but with Aspose.ZIP, you can enable parallel processing by adjusting the CompressionThreads property. You simply need to specify the number of threads you want to use. If you set CompressionThreads to a value greater than one, Bzip2 will engage the specified number of CPU cores.

Why Use Multi-Core Compression?

Using all available CPU cores is particularly advantageous when working with large data sets or when performance is a priority. This approach reduces the time required to compress large files by distributing the workload across multiple cores.

In the following example, the CompressionThreads option is set to use all available cores on the machine by assigning Environment.ProcessorCount to the CompressionThreads property.

1    using (Bzip2Archive archive = new Bzip2Archive())
2    {
3        archive.SetSource("data.bin");
4        archive.Save("result.bz2", new Bzip2SaveOptions() { CompressionThreads =  Environment.ProcessorCount });
5    }
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.