In my previous post, I extolled the virtues of WinRAR and the RAR archive format. I disregarded 7-ZIP because it didn't do well in that particular compression study, and because my previous experiences with it had shown it to be efficient, but brutally slow.
But that's no longer true. Consider the following test I just conducted:
| Extraction | Compression | Size | |
| WinRAR 3.70 beta 2 | 0:39 | 3:09 | 135 MB |
| 7-ZIP 4.20 | - | 6:04 | 127 MB |
| 7-ZIP 4.44 beta | 0:40 | 3:03 | 125 MB |
7-ZIP performance has doubled over the last two years. And it's slightly more efficient at compression, too. That's impressive.
Performance is no longer a reason to choose WinRAR over 7-ZIP. Granted, this is a sample size of one, a single test on a single machine, but it's hard to ignore the dramatic reversal of fortune.
I still like WinRAR's ultra-slick shell integration. But 7-ZIP is a viable competitor now in terms of raw clock time performance, and as always, it tends to produce smaller archives than RAR. This more than addresses my previous criticisms. Mea culpa, 7-ZIP.
Posted by Jeff Atwood View blog reactions
« Don't Use ZIP, Use RAR You Want a 10,000 RPM Boot Drive »
Now if only our politicians were willing to revise their positions. Your a real man.
wiredcoder on February 23, 2007 02:35 PMGood for you for fixing your own mistakes!
Henry Liang on February 23, 2007 02:50 PMI knew it had sped up, but not that much. Nice to see your results.
So... what will we argue about in this era of 7-Zip Glasnost? Back to WinMerge vs. BeyondCompare?
Jon Galloway on February 23, 2007 02:53 PMWell, Jon, your momma is so fat that..
Jeff Atwood on February 23, 2007 02:59 PMThat's great and all but Windows still sucks compared to Macs. ;)
Scott on February 23, 2007 03:20 PMGlad to see you're willing to revisit a past problem. As for "ultra-slick" integration, I can right-click a file and 7-zip it myself. I actually like the window popping up rather than the 4000 menu options it feels like WinRAR is giving me. But that's a matter of style and taste.
Jae on February 23, 2007 03:25 PMI've seen 7-zip be very good for arrays of files that are all very similar. One example where this can be seen is collections of ROM images that have relatively small differences from one another. RAR with solid archive support may have similar results, however 7-zip seems to have that type of feature enabled by default.
Zip may not be the best format out there but it's as close to a standard as we have. It's universal, easy and there are more free zip compression/decompression libraries out there than you can shake a stick at, plus, and this is the most important part, it's built right into most operating systems.
In a way I feel you've already hit on all the points I'd make in your blog post "Worse Is Better". Yes, 7Zip and WinRAR are much better yet they still require another install, another purchase, another program. The same concept is why I was so happy to see a decent Photo manager in Vista. Finally, I don't have to install yet another program like Picasa to get decent photo management tools.
I also take the concepts of your "Non-Native UI's Suck" even further. I much prefer the built in Windows Zip shell integration because for 99.9% of the tasks I do with zips it just works and it feels like part of the OS. Even when I've had to use programs that have shell integration like WinZip or WinRAR I always feel they are trying too hard and their icons are jarring for a utility level application.
I feel this is a similiar argument to MP3 vs. other formats. The MP3 format is often decryed as a horrible format compared to it's modern counterparts yet it still stubbornly remains a de facto standard.
Shawn Oster on February 23, 2007 05:35 PMSo what's wrong with 7-zip's shell integration? I think they are about on par myself.
Kent Larsson on February 23, 2007 05:41 PMI scanned over the comments from the earlier post and just wanted to throw in my two cents about Open Source (although I'll withhold comment on Free Software for the moment).
The reason Open Source appeals to me as a development model is because it seems to me that it is the most efficient software development method. Take the Linux kernel. The thing that keeps the Linux Kernel "nimble" and innovative is that *anyone*, at any time, can fork the code and write their own variant. That means that the Kernel Developers always have to be the top of their game, because the moment they're not, anyone else can take over their technical lead. Bad for the developer's peace of mind and their job security if they start to slack off? Yes. But good for making sure that Linux development happens at as fast a pace as possible? Absolutely.
GNU Emacs, a common Linux/Unix text editor, is a good example of this: Richard Stallman himself wrote much of Emacs, but some developers were not happy with his, er, management style - so they forked it into Lucid Emacs, which became what is today XEmacs. GNU Emacs and XEmacs today coexist, both adding features and both feeling pressure from the other to never fall behind. At the same time, because they both use open codebases, there is no "penalty" for switching between the two; even complex applications the plug-in mail clients worth in both of them. (For the record, I use GNU Emacs).
GCC, the main C compiler on Linux, is perhaps an even better example: GCC *was* forked, and the forked version ended up being better - so it was merged back into the 'mainline' version. GCC is a better piece of software today because of this.
Countless more examples exist. What makes them possible was that the source code was there for the taking: if you ever feel like you can do better than Linus & co on the kernel, or the GNU team on Emacs, or anything else under an OSS license, then you can take that code and run with it. But can you do that with the NT kernel? With MSOffice? No... if the Microsoft team is not at the top of their game, it doesn't matter: You can't take your talent and produce a better Word.
I use Ubuntu as my primary OS, and this effect really shows. OSS is really "survival of the fittest," a true free market unencumbered by the inefficiencies of file format incompatibility, reimplementation of secret network protocols, etc. The end result is that I've found I have significantly less tolerance for things to go wrong. The kind of UI 'bugs' that I experience with Windows are things that would make me instantly switch Linux distros- which means Linux distros don't make those mistakes, or at least, they don't for very long. Clippy would not have lived long - or existed- in a Linux distro; nor would the failure to integrate better Zip, ftp and remote access utilities. These are basic things in any Linux distro, and it still surprises me that any OS can get away with not including them.
AdamG on February 23, 2007 06:26 PMI've used WinRAR before, and I cannot recall any advantage that it had in the shell integration arena over 7zip apart from a little icon in the context menu (which, actually, is kind of handy when navigating quickly through menus). I'm glad you decided to give it a second chance.
JMC on February 23, 2007 07:01 PMI did a bit more testing with 7-ZIP and I have some further observations to share.
1) The "fastest" mode in 7-ZIP is terrible. WinRAR is easily 2x faster in its "fastest" mode. And because it's called "fastest" and not "sorta-kinda-fast", that is NOT cool. It does compress slightly better in fastest mode, but not enough to compensate, and besides, that's hardly the point.
2) 7-ZIP's normal, default compression settings are definitely comparable to WinRAR. It's actually noticeably faster in some cases using the defaults. And of course it compresses better overall.
I dislike the way 7-ZIP does not predict the compression ratio as it's compressing. I use this to gauge whether the operation is worth continuing; it's one of my favorite WinRAR features.
I use "fastest" mode quite a bit for quick and dirty archiving of VMs, so the poor showing of 7-ZIP in that mode is a real bummer.
Jeff Atwood on February 24, 2007 01:20 AMA couple of questions (I'm currently in no position to install new software):
Can 7-ZIP deal with Unicode, can it store ACL permissions, and does it have recovery records?
Johnny Guitar on February 24, 2007 01:21 AMAn other big advantage of 7-Zip is its permissive license (LGPL). I mean by this that you can bundle the DLL's for decompressing **and** compressing with your application (as opposed to Rar where only the decompression part is "free").
Cd-MaN on February 24, 2007 01:40 AMI do not think 7-ZIP has any equivalent to the RAR parity files. More on that here:
http://www.win-rar.com/index.php?id=24&kb=1&kb_article_id=142
Jeff Atwood on February 24, 2007 01:45 AMMy favourite compression utility is :
http://tugzip.com/
It handles all the usual formats including zip,rar,7-zip. It even reads .lib files - listing the .o files inside which is kinda cool. Shell integration is on a par with winrar and the ui is ( to my eyes anyway ) less garish - easier on the eyes. Oh and its free.
I achieve much better compression ratios with 7-zip in contrast to all other compression utilities ever tested.
each month I uncompress daily bzip'ed tarball'ed backups and merge them into a single 7-zip backup of an entire month. most of the files of the daily backup have never changed during the month.
7-zip compresses a directory structure of around 9 GB to 80 MB where other utilities need around 2 GB !!
Personally, I hate shell integration, slick or otherwise *, and I've tried WinRAR (some time ago; I may check out a newer version). That said, I just wanted to note for others that WinRAR also ships with a command-line archiving and extraction utility, for those who (like me) don't like the GUI, but like the compression ratio.
* I'm an equal opportunity anti-gui-integration guy. I use SVN, and disabled the Tortoise SVN shell extension. I don't use WinZip integration, and I use Visual Studio with SourceSafe at work, and constantly annoy people who open my projects because I diabled the damned SourceSafe integration.
I also like to drive standard-shift, so it's a consistent preference for the manual option.
Hello,
I will not test it, but you can do:
I noticed the dual cpu in your config and the double improvement of the speed. So the double of speed is not because of your cpu is dual core? Maybe 7-zip can use them while winrar can't? Of course for you the result is okay, but the statement "7-zip speed doubled" is not true in this case.
> So... what will we argue about in this era of 7-Zip Glasnost? Back to WinMerge vs. BeyondCompare?
No need to, Araxis Merge handily beats both by a far margin
> most of the files of the daily backup have never changed during the month.
> 7-zip compresses a directory structure of around 9 GB to 80 MB where other utilities need around 2 GB !!
This may be because 7-zip uses "solid" archives by default when compressing to 7z. Basically all the files are considered as a single stream, so redundancies between different files can be compressed instead of being limited to redundancies of a single file. This of course has a fairly huge drawback: you have to decompress the whole archive every time you want to retrieve something, even if you only want a single file.
It is possible to activate it for Winrar.
> I noticed the dual cpu in your config and the double improvement of the speed. So the double of speed is not because of your cpu is dual core? Maybe 7-zip can use them while winrar can't?
His point is mostly that 7z 4.44 is twice as fast as 7z 4.40 (and thus becomes a time-worty alternative to Winrar). The question would be: if 7z 4.44 uses both cores, did 7z 4.40 do it? Plus I'm pretty sure Winrar's been multithreaded since 3.60, so the comparison between 7z 4.44 and Winrar 3.70 seems fair
Jeff, could you also post the core load charts when compressing with Winrar, 7z 4.40 and 7z 4.44? Process Explorer's System Information view for example.
Masklinn on February 24, 2007 11:09 AMWhoo-hoo! There you go promoting OSS again. Thank you :D
opensoresfreak on February 24, 2007 01:20 PMBah! Flip Flopper! ;)
Telos on February 24, 2007 02:07 PMMasklinn, you're correct, though CPU utilization never tells the whole story; memory access patterns impact performance significantly. All a graph would show is that one is nearly a combined 50% and the other two roughtly 100%.
Also, I'm pretty sure foldip was testing with solid; 9 GB is way beyond the effective limit of Winrar's 4MB dictionary. One of 7-zip's (and WinRK's) strengths is that you can use as much memory as you want to find the optimal packing; the major caveat being that you need that much to decompress. However, this is mainly suited to specialized applications like that, for generic use larger dictionaries rarely gain much.
I did find out after some research that 7-zip had multithreading as a hidden option since 2003 (possibly because it didn't work well), and made it the default at the same time as winrar added it (4.42 vs 3.60b1). Huh.
Foxyshadis on February 24, 2007 07:31 PMAfter several years of using RAR I'm switching to 7z. It compresses my databases to 75% of RAR in quite comparable time. This really matters. And it integrates into TotalCommander smoothly. (What? Anybody still uses bare Explorer?)
MaS on February 24, 2007 10:16 PMShell integration in 7zip is nice, but it lacks the WinRAR-ian 'Extract to ThisDirectory\`basename $1 .rar`' option, so you have to load up the UI if you want to guarantee everything from the rar go into a directory. Otherwise you end up with files strewn about in the current directory.
opello on February 25, 2007 12:29 AM> I made a commitment to spend at least $20 per month supporting my
> fellow independent software developers. WinRAR has become increasingly
> essential to my toolkit over the last year, so this month, I'm buying
> a WinRAR license.
I'm curious, are you now also considering to donate $20 to Igor Pavlov (7-zip developer)?
samv on February 25, 2007 04:34 AM> Shell integration in 7zip is nice, but it lacks the WinRAR-ian
> 'Extract to ThisDirectory\`basename $1 .rar`' option
It's there but no longer appears to be enabled by default for some reason. I spent a while wondering what had become of this obvious feature. You have to hunt a bit to turn it on: start the 7zip file manager then tools->options->plugins->7zip->options->system->context menu items
Matt on February 25, 2007 06:30 AMI use "extractnow"... its simple, and clean, and it does things in batch natively. Its very customizable.
double click on any archive file, and "pop", the archive is extracted.
for compression, I use 7zip, cus its free, fast, and good compression ratio and the command line nature means i can make batch files with it really cleanly. If I'm compressing something, its purely to save diskspace, so i want the greatest compression possible. And since i typcically schedual compressions with a chron job, the time it takes isn't that important to me.
tar.gz for the win!
apeinago on February 25, 2007 12:06 PMI've been drooling over the 150GB raptor for a while, but apparently my SATA controller on my motherboard is too old to correctly support it. It took me a while to figure that out, but it definitely earned a big WTF. You'd think SATA is SATA.
Karthik on February 25, 2007 06:12 PMHave you ever heard of the product called Izarc?
* Create an archive
* Add files to an existing archive
* Delete files from an existing archive
* Extract files from an existing archive
* Test an archive file
* Convert archive
* Convert CD Images
* Repair broken archive
* Searching for any files in many archives
* Favorite Folders
* Obtaining a detailed list of files and information like compression rate, path, or size from an archive file
* Supports both long and short 8.3 filenames
* Disk spanning from and to multiple diskettes or other removable media
* Implementing the possibility to sort the list items by name size, date and etc.
* Full Drag & Drop support
* CD/DVD Images support (ISO, BIN, MDF, NRG, IMG, C2D, PDI, CDI)
* Integrating in Windows Explorer context menu
* Automatic installation of most software distributed in archive files
* Add/View comments in an archive
* By double-clicking onto a file in the file list, it's opened with the program associated to this file type
* CheckOut feature
* Create a self-extracting archive
* E-mail an archive
* Checking for new updates
* Build-in multilanguage support
* Virus Scan feature
* UU/XX/MIME Encode/Decode
* Create Multi-Volume Set
* Merge Multi-Volume Set
* UnSFX (Convert self-extracting (SFX) .EXE files to standard archives)
* Encrypt files using Rijandael - AES (256-bits) encryption
* Zip encryption (WinZip 9 compatible)
* BZip compression for ZIP archives
* Decrypt (.ize) files
I personally like it because it can handle all the zip, rar files i may work with, and the interface is easy to learn, and doesn't try to get in the way, as does winzip.
It's very customizable, just a quality freeware product, in my own humble opinion.
Regarding recovery records, bzip2, which 7zip supports, has some recovery features.
(is my captcha always supposed to be the same word no matter how many times I commen? because it is)
Aaron H on February 27, 2007 10:37 AMYou'd think someone wouldn't want to intentionally name a program something that's only going to get confused for the venerable lzarc (still the most popular archive format in japan).
Foxyshadis on February 28, 2007 02:52 AMyou wont fool me with your little tests, your going to have to prove this to me.
verbaherda on February 28, 2007 06:06 PMOne thing I like about 7-ZIP is that you can get it as a portable app. One place I have found it is at www.portableapps.com
Wheat Free on February 28, 2007 07:22 PMMatt had mentioned the explorer shell for 7-zip, so I won't repeat that.
Johnny Guitar asked if 7-zip support ACL. From the man 7z page of the p7zip-full package for Ubuntu:
"""
DO NOT USE the 7-zip format for backup purpose on Linux/Unix because :
- 7-zip does not store the owner/group of the file.
On Linux/Unix, in order to backup directories you must use tar :
- to backup a directory : tar cf - directory | 7za a -si directory.tar.7z
- to restore your backup : 7za x -so directory.tar.7z | tar xf -
"""
I guess this ain't ACL you asked though.
Hieu Hoang on March 11, 2007 06:07 AMI'm actually quite frustrated with 7-zip right now. I find its compression is very hit-or-miss. I started converting all my archives to 7-zip and I'd say about 30% of the time the 7z archive is larger than the RAR it's trying to replace, and this is with the uber-slow Ultra algorithm and 96m dictionary (it eats up about 1.1gb of memory during compression). Spread over a few dozen files totaling about 15 gb of data, it ends up being that most of the 7z files are 10-15% smaller than their RAR equivalents, but a few weirdos end up being significantly larger, negating the savings of the smaller files. In most of these bizarre cases 7-zip performs worse than even plain old ZIP. Seems like a bug to me, like the 7-zip compressor is choosing the wrong strategy for certain data streams, much like early versions of RAR sometimes resulted in archives larger than the input source data.
For that reason, I've stopped doing these mass conversions for the time being as I simply don't have the time to cross-compare different archive formats, nor do I want a heterogeneous mix in my backup.
Billco on April 22, 2007 01:59 PM7-Zip Version 4.46 beta 2007-05-25
--------------------------------------
- New fast compression mode for Deflate method in Zip and GZip.
from http://www.7-zip.org/history.txt
so now maybe the 'fastest' setting does what you want it to....
Dalhamir on September 27, 2007 02:17 PM7zip sucks totally since you can not extract something on external files when there is no space for the TOTAL extracted archive on C:\
How bad is that: It extracts to C: and move it later.
Husker on November 10, 2007 07:27 AM7-zip(ver.4.42)'s "Maximum" compression mode seems to produde a slightly smaller file than WinRAR 'best' mode does. But, it uses 200MB of physical memory during archinving in addition to long time. So sometimes background archiving was not practical in my 1GB ram system.
I always use 7-zip. However, some disadvantages like no recovery record, incomplete multi volume, still slow time, lack of drag and drop archiving should be covered, I think.
dodo on November 17, 2007 07:28 PMFreeArc (http://freearc.org/) is the new lead!
It's still in early development though
Unless I'm being dumb, unlike Winrar, 7z cannot cope with "broken files" - If one has the first part of a series of Winrar split files one can at least get the first part to extract its files. With 7z it seems (like Winzip) one must waiut until ALL the segments are downloaded. This sucks. Stick with Winrar for this reason. Or am I being stupid?
Bobby on June 29, 2008 01:11 PM| Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved. |