Does Rebex Zip library support multi-core compression?

+3 votes
asked Mar 1, 2016 by Rebex KB (8,380 points)
edited Mar 1, 2016 by Tomas Knopp

Could you tell me whether your Zip library supports multi-core compression (e.g. is the zip library multi-threaded)?

I’ve been looking for a multi-threaded ZIP library for a while now, and haven’t found any good commercial offerings.

Applies to: Rebex ZIP

1 Answer

+2 votes
answered Mar 1, 2016 by Tomas Knopp (58,890 points)
selected Mar 1, 2016 by Rebex KB
Best answer

We added the multi-core compression support into Rebex Zip version 2015 R4.

The library now supports multi-core/multi-threaded compression that enhances compression speed a lot on modern multi-core CPUs. Number of compressors can be configured via ZipArchive.Options.CompressorCount property.

As to the speed tests - we plan to do more measurements in the future, but these are the first results we got from compressing 2 log files with an overall size of 410 MB:

  • Compression level 6 (default):
    1 core … 45 seconds
    2 cores … 25 seconds
    3 cores … 17 seconds

  • Compression level 9 (highest):
    1 core … 121 seconds
    2 cores … 67 seconds
    3 cores … 44 seconds

The time measured indicates the total duration of the two ZipArchive.AddFile method calls.

These measurements were done on a Dell laptop with Intel Core i7-3740QM CPU (8 cores) at 2.7GHz, 16 GB RAM and an SSD disk drive.

Using 4 cores still enhanced the speed noticeably, however, for 5, 6 or more cores the additional speed increase was no more worth the overally increased CPU usage.

To give it a try yourself, here is a link to download the free Rebex ZIP trial version.

To learn more about release 2015R4, just check our blogpost.