unzip parallel, 3x faster than 7zip

Jay Norwood jayn at prismnet.com
Thu Apr 5 08:43:42 PDT 2012


On Thursday, 5 April 2012 at 15:07:47 UTC, Jay Norwood wrote:
........

so, a few comments about std.zip...

I attempted to use it and found that its way of unzipping is a 
memory hog, keeping the full original and all the unzipped data 
in memory.  It quickly ran out of memory on my test case.

The classes didn't lend themselves to parallel execution, so I 
broke them into a few pieces ... one creates the directory 
structure, one reads in compressed archive entries, one expands 
archive entries.

The app creates the directory structure non-parallel using the 
mkdir recursive.

I found that creating the directory structure only took about 0.4 
secs of the total time in that 2GB test.

I found that creating the directory structure, reading the zip 
entries, and expanding the data, without writing to disk, took 
less than 4 secs, with the expansion done in parallel.

The other 13 to 14 secs were all taken up by writing out the 
files, with less than a half sec of that required to update the 
timestamps.  This is on about 39k directory entries.

The 17 sec result is on the intel 510 series ssd drive.  on a 
hard drive 7zip took 128 secs and uzp took about 70 sec.

G:\>uzp tzip.zip tz
unzipping: .\tzip.zip
finished! time: 69440 ms


It is interesting that  win7 takes longer to delete these 
directories than it does to create them.


More information about the Digitalmars-d-announce mailing list