« Help

Compression on multi-core computer

What is a Multi-core processor?

The processing unit of CPU is called core, and a CPU with two or more cores is called a multi-core CPU. In the early days, PC has a CPU with one core, but recently mobile CPU even has a multi-core CPU. So Supporting multi-core CPU is an essential factor in evaluating software performance in these days.

Multi-core compression

Bandizip supports multi-core compression. Since data compression requires a lot of CPU operations, compressing in parallel using multi-core is helpful to improve speed.

For example, Bandizip can compress 6 times faster with 4 cores 8 threads CPU, can compress 13 times faster with 8 cores 16 threads CPU.

Why not use multi-core during extraction?

You can see that the CPU usage is increased to max when compressing using Bandizip, but it is not high when decompressing.

This is caused by data compression algorithm. Most data compression algorithms are implemented using a method of referring to the data at the front. Due to this characteristic, compression can do in parallel, but extraction is hard to implement as parallel.

Why CPU usage is not high when compressing?

Also, there could be a problem that low CPU utilization when compressing. The compression operation will repeat the following steps.

Read the file to compress (original hard) ▶ Compress (CPU) ▶ Write to archive (target hard)

Typically, Compression is the bottleneck in this steps, so CPU usage is high. However, in some cases such as using slow media(external USB memory, network drive...) the bottleneck is not a CPU, but a disk I/O, so the CPU utilization may not be high.

Also, even when compressing a large number of small size files(less than 100 KB), the CPU share may not be high.