Page 1 of 1

Implementation of a faster unzip library

Posted: 2023-02-04, 12:29 UTC
by joker
Hello Mr. Ghisler, would it be possible for you to include a faster unpacking library?

Take this ZIP file, for example: https://download.jetbrains.com/idea/ideaIU-2022.3.2.win.zip

Compared to WinRAR and 7-Zip, TC takes a little more than twice as long to unpack/test.

Re: Implementation of a faster unzip library

Posted: 2023-02-04, 16:22 UTC
by Hacker
WinRAR and 7-Zip, TC
I confirm, 13s, 13s, 29s.

Roman

Re: Implementation of a faster unzip library

Posted: 2023-02-04, 18:17 UTC
by petermad
Here it is:
WinRar: 56s, 7-zip: 43s-61s, TC: 50s (the unpacking time with 7-zip varies a lot).

Computer: Intel i7-479 3.60GHz, 14 GB Ram, Windows 7. SATA harddisk

___________________________

Edit - tried with another PC - here the difference is more pronounced:
WinRar: 110s, 7-zip: 106s, TC: 189s-259s (the unpacking time with TC varies, longer time at first test).

Computer: AMD E2-1800 1.70Ghz, 8GB Ram, Windows 10, SATA harddisk

Re: Implementation of a faster unzip library

Posted: 2023-02-05, 08:42 UTC
by joker
petermad wrote: 2023-02-04, 18:17 UTC Here it is:
WinRar: 56s, 7-zip: 43s-61s, TC: 50s (the unpacking time with 7-zip varies a lot).

Computer: Intel i7-479 3.60GHz, 14 GB Ram, Windows 7. SATA harddisk

...
Here the bottleneck is the hard disk. Probably the ZIP file was immediately flushed to the hard disk after downloading and the RAM pages caching the file were freed up for other things.
Try it with a RAM disk and the difference should be more visible.

Re: Implementation of a faster unzip library

Posted: 2023-02-06, 15:43 UTC
by ghisler(Author)
I'm currently experimenting with libdeflate as suggested here and the results have been fantastic.
The file you linked is tested in 4.05 instead of 25.36 seconds (Intel Core i7-11700).
It's even better when there are only few files:
A 500MB file is tested in 1.4 seconds instead of 9.4 seconds.
A 2.82 GB file is tested in 9.1 seconds instead of 74.8 seconds.

Please note that this is with function Files - Test archive(s) to measure the raw unpacking speed. Otherwise the file system and virus scanner will have a huge influence.