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