Skip to content

Instantly share code, notes, and snippets.

@Nakilon
Last active July 30, 2023 13:03
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Nakilon/09fac4335b95f9617e4c82af4d9e1e7d to your computer and use it in GitHub Desktop.
Save Nakilon/09fac4335b95f9617e4c82af4d9e1e7d to your computer and use it in GitHub Desktop.
"Large Text Compression Benchmark" (http://mattmahoney.net/dc/text.html) sorted at the same time by compression ratio, speed and memory usage
1. GRZipII
2. Info-ZIP
3. WinRAR
4. gzip124hack
5. bssc
6. ppms, bzp, gzip
7. scmppm, lzsr, CTXf
8. M1x2
9. ppmd
10. sr3c, drt|lpaq9m
11. crushm, slug, jar
12. bzip2
13. DGCA, ppmvc, uharc, libzling
14. pim
15. mcomp, FreeArc, 4x4, nanozipltcb, comprolz, Stuffit
16. sbc, zhuff, snappy, sr3, uhbc, szip
17. dark, zcm, bit, brieflz, comprox
18. rh5_x64, 7zip, zlite, thor, ppmx, pkzip, stz
19. uc2, rings, fbc, pcompress, comprox_ba, data-shrinker
20. lzv, WinACE, PX, bcm, FastLZ
21. irolz, zstd, xwrt, lzrw3-a, enc, tc, ha, boa
22. cabarc, QuickLZ, ccmx, rzm, crook, srank, mcm, WinTurtle, NTFS
23. pimple2, m03exp, bbb, epmopt|epm
24. quad, hook, bsc, cmm4, lzuf, flashzip
25. bee, ash, KuaiZip, lz4, M03, ppmonstr, acb
26. WinUDA, bpe2, bpe, fcm1, xpv5, phda9, durilca'kingsize, compress, fpaq0f2, fp8
27. arj, nncp, paq8hp12any, paq9a, uda, lstm-compress, csarc, TarsaLZP, etincelle, lzop
28. lazy, lzc, ppp, WinRK, bwmonstr, lz4x, shindlet_fs, cmix, yxz
29. dzo, lza, lrzip, BWTmix, sharc, zpaq, drt|emma, paq8pxd_v48_bwt1, compact
30. nanozip, lzp2, exdupe, slim, ulz, lzf
31. cmve, chile
32. lzbw1, mtari, ocamyd, pucrunch, cm4_ext, PeaZip, qazar
33. lzgt3a, lzss
34. glza, balz, CTW, Squeez
35. smac, packet, crush, quark, tornado
36. flzp, pigz
37. urban, brotli, qc, smile, LZPXj
38. runcoder1, bwtdisk
39. fpaq2, MTCompressor, TinyLZP, xeloz
40. bce3
41. alba
42. bwtsdc
43. arb255
44. arb2x, lzham
45. dmc, TinyCM
46. lzwc_bitwise
47. lzturbo, packARC
48. lzw, doboz
49. xdelta
50. lzip, lzpm
51. kzip
52. barf
53. xz
54. RangeCoderC
55. arbc2z
56. plzma
57. kwc
58. diz
59. lcssr
60. lz5
61. nakamichi
62. ksc

My goal was to find the best archiver/compressor for such home usage scenarios like archiving gigabytes of data to an external disk (or cloud) and/or unarchiving it on another Windows or macOS machine. Ideally it should compress, archive (be able process directories, not only files), be cross-platform, maintained and have GUI integration in a form of at least mouse context menu. If you tell that you don't need GUI I'm pretty sure you just don't have much stuff to work with.

The "Large Text Compression Benchmark" by Matt Mahoney is a well known place to refresh your knowledge on existing tools but it is sorted only by a compression ratio. Take a look at the first place -- cmix -- to compress the 1GB text file it needs 30GB of RAM and 1 week of CPU time. There are such archivers that use less that 1MB of RAM or less than a minute of time. There will be other interesting notes that make some archivers unusable.

How do we sort the table by compression ratio, time and memory at the same time? Should we invent a formula like score = ratio / time / memory? But while the amount of free time for different users varies a lot the memory limit is nearly equal so why not ratio / time / memory^2? Or ratio / log(time) / memory? And the compression ratio has some theoretical limits so why don't we subtract some 100MB from the resulting archive before dividing? You might notice that the idea of inventing a formula just sucks. Fortunately I don't do this for years already -- instead I use my "PCBR algorithm" that I can't force myself to describe normally in README (because I'm lazy to spend time on things that already work) that "sorts tables by several columns at the same time". So I've copied the table from HTML page, parsed it (it has some numbers weirdly shifted, absend or sometimes they don't even have a space in between so most of the code are regexes) and fed it into the PCBR.

The most interesting things are always on both ends. nakamichi -- "On the test machine it takes 95 days and 302 GB of memory to compress and 1.3 seconds and 2 GB to decompress" -- the source code and comments with gifs and dragons can be found here on Github. Now about the leaders:

  1. The best one is GRZipII -- this was made in 2004 (and about half of the list is from 2004-2006, mostly made by Russian programmers -- I remember that time, we were students who were just starting using internet, download books, and amounts of data grew so quickly). The website seems to be dead. It has only one line long description on the benchmark page but according to the author of another archiver it was the best competitor among BWT-based. The author have moved to USA to work for Microsoft around 11 years ago and the source code of the archiver isn't available on Github. There is only the libbsc compression library there but archivers that use it are only on 19th and 24th positions in my rating. There is also a fork of GRZipII included in quickbms source code (the libs folder), updated by some French guy but nothing separate and official.
  2. The next one is Info-ZIP from 2008 by a large group of programmers who loved to work together -- amazing 0.1MB of RAM usage on Linux and about 1MB on Windows with pretty good speed and even GUI but kind of abandoned and then according to Wikipedia multiple CVEs were published. And finally even after patches being applied: "FreeBSD has opted to replace info-zip utilities".
  3. WinRAR is 70th in the original benchmark table because the compression rate is not the best but it's made for people and so it is well rounded as having relatively good speed and memory usage. A bad thing about it that I know is that once in few years there are some incompatible changes in RAR file format. Maybe it's the only one archiver that has the relevant subreddit.
  4. gzip124hack -- peronally I won't trust an unility with word "hack" in its name to move my files. Otherwise you might consider using it. The tool is a fork of gzip that has the compression ratio improved. The problem of gzip is that it works only with a single file at a time.
  5. bssc has only two versions, both "alpha", made in 2005. We don't want to use unmaintained stuff because some applications may barely work correctly on modern Windows and macOS compatibility is even worse.
  6. PCBR allows input table rows to be ranked equally so the sixth position was taken by three tools at once. ppms (2006), bzp (2008) and the well known gzip that I already mentioned. According to superuser.com on Windows for gzip I have to use 7zip... that is obviously misleading and wrong. These are different things and 7zip is only on the 17th position in my rating. Instead I would recomment to try binaries from the GnuWin32 project.
  7. scmppm (2006), CTXf (2003) and lzsr (probably only one version and author has moved it to the "Old" section of his Download page).
  8. M1x2 looks abandoned since 2010.
  9. ppmd according to the description is kind of the same as ppms (the 6th position).
  10. sr3c is an old thing that needs hacks to be compiled on Windows. The PAQ family Wikipedia article has a Comparison section that shows that these were made rather for compression ratio than for speed or low memory usage but nevertheless they are in my top-10 so you might want to read a huge PAQ Data Compression Programs article about them.
  11. I was surprised (and this is why I didn't stop at 10) but one of three archivers on this position is jar. I knew I can unpack those files since the age of J2ME phone applications but I never thought about using it as an archiver like WinRAR or 7Zip. If SUN Oracle or anyone else were so kind to make a GUI integration I would give it a try.
  12. bzip2 is equivalent to gzip (and so can't archive folders) but is lower in the rating so there is probably no point to use it.

All other mentions of context menu integration or GUI are commercial, abandoned projects or just low in rating. I'll metions some of them: FreeArc (15th, 2004, but website does not open for me), stuffit (15th, commercial), flashzip (24th, by the author of LZSR but not in the "Old" Downloads section), pim (14th, 2008), DGCA (13th, 2006, Japanese website so I don't really understand what it says) and the ksc (the worst tool according to my rating but surprisingly it has GUI).

So as a conclusion I would say two things. That I recommend gzip to those who need to compress a single file or automate such processes and WinRAR to those who are not allergic to the popup and don't mind the potential incompatibility issues. And that unfortunately spending the whole evening on this I didn't discover anything useful. Most of this stuff is unmaintaned and is often incompatible with each other even if the file extension is the same. Also the benchmark is using a dump of Wikipedia that is a text, not binary data like images, music, game assets -- this actually may change numbers a lot. After spending hours on this summary I realised that this benchmark is more for computer scientists but for home usage you should start with chosing the most compatible archive format such as .zip or .tar.gz (that your OS might be able to browse and unpack without tools installed) and then look at some another benchmark that would compare how archivers work specifically with this format. I didn't find (if you do, let me know) a benchmark of such kind with as much detail as in one by Matt Mahoney but maybe the WinRAR+zip will win (this one lacks memory usage measurement).

require "pcbr"
pcbr = PCBR.new
File.read("table.txt").split(?\n).map.with_index do |line, i|
next if /\A\d*\z/ =~ line
fail unless /\A(?<name>\S+) / =~ line
fail unless /\A.{45} (?<comp_size>.{23}) (?<dec_size_and_total>.{24}) (?<rest>.+)/ =~ line
fail unless /\A\d\d,\d\d\d,\d\d\d \d\d\d,\d\d\d,\d\d\d\z/ =~ comp_size
fail unless /\A(?<dec_size>.{9}) ( |[sx][d ]) \d\d\d,\d\d\d,\d\d\d\z/ =~ dec_size_and_total
fail unless /\A *[\d,]+\z/ =~ dec_size
fail unless /\A(?<ab>.{12,14})[ ~](?<c>.+)/ =~ rest
if /\A *\d+ +\z/ =~ ab
a = b = ab
else
fail unless /\A *~?(?<a>\d+) *[ ~](?<b>\d+(\.\d+)?) *\z/ =~ ab
end
fail unless /\A *\d+(\.\d+)?( |\z)/ =~ c
sum = a[/\d.+/].to_i + b[/\d.+/].to_f
pcbr.store name, [i, sum, c.to_f]
STDERR.puts [name, sum, c.to_f].inspect
end
pcbr.table.sort_by(&:last).chunk(&:last).each_with_index do |g, i|
puts "%2s. %s" % [i + 1, g.last.map(&:first).join(", ")]
end
["cmix", 1204436.0, 25738.0]
["phda9", 172487.0, 6319.0]
["nncp", 1982515.0, 5360.0]
["paq8pxd_v48_bwt1", 1159788.0, 51865.0]
["durilca'kingsize", 3195.0, 13000.0]
["cmve", 2281602.0, 19963.0]
["paq8hp12any", 75244.0, 1850.0]
["drt|emma", 140103.0, 3800.0]
["zpaq", 21438.0, 14000.0]
["drt|lpaq9m", 1766.0, 1542.0]
["mcm", 675.0, 5961.0]
["nanozip", 2290.0, 32000.0]
["xwrt", 4865.0, 1691.0]
["fp8", 43198.0, 1192.0]
["WinRK", 137110.0, 800.0]
["ppmonstr", 7174.0, 1700.0]
["zcm", 832.0, 3100.0]
["slim", 10632.0, 1700.0]
["bwmonstr", 487948.0, 590.0]
["nanozipltcb", 94.0, 3350.0]
["M03", 863.0, 5735.0]
["glza", 8195.9, 8205.0]
["bcm", 315.0, 5000.0]
["bsc", 436.0, 5095.0]
["bbb", 7143.0, 1401.0]
["pcompress", 433.0, 3300.0]
["paq9a", 8018.0, 1585.0]
["uda", 50456.0, 180.0]
["BWTmix", 2484.0, 5000.0]
["lrzip", 5916.0, 2700.0]
["cm4_ext", 8253.0, 1906.0]
["M1x2", 1426.0, 1051.0]
["cmm4", 4108.0, 1321.0]
["lstm-compress", 184218.0, 9.0]
["ccmx", 2651.0, 1332.0]
["bit", 4150.0, 663.0]
["mcomp", 872.0, 1643.0]
["epmopt|epm", 6555.0, 800.0]
["WinUDA", 47083.0, 194.0]
["dark", 986.0, 1692.0]
["FreeArc", 2391.0, 1046.0]
["hook", 1436.0, 1777.0]
["7zip", 1049.0, 1630.0]
["rings", 443.0, 2518.0]
["pimple2", 36466.0, 128.0]
["ash", 11953.0, 700.0]
["bce3", 3595.0, 5000.0]
["ocamyd", 218960.0, 300.0]
["bee", 18580.0, 512.0]
["uhbc", 2378.0, 800.0]
["smac", 8648.0, 1542.0]
["ppmd", 1775.0, 256.0]
["tc", 7292.0, 230.0]
["bwtsdc", 2520.0, 5213.0]
["fbc", 866.0, 1647.0]
["ppmvc", 1811.0, 272.0]
["chile", 3025.0, 1426.0]
["bwtdisk", 2248.0, 3500.0]
["CTXf", 2149.0, 78.0]
["m03exp", 6900.0, 256.0]
["Stuffit", 1286.0, 1062.0]
["plzma", 8944.0, 10110.0]
["crook", 996.0, 1641.0]
["ppmx", 1561.0, 609.0]
["lzturbo", 1920.0, 14700.0]
["enc", 13711.0, 50.0]
["comprolz", 1292.0, 688.0]
["sbc", 2046.0, 224.0]
["xz", 5896.0, 6000.0]
["WinRAR", 921.0, 128.0]
["quark", 28169.0, 534.0]
["lzip", 2430.0, 5632.0]
["comprox", 1070.0, 688.0]
["bssc", 795.0, 140.0]
["flashzip", 1418.0, 802.0]
["lzham", 1102.6, 7800.0]
["csarc", 643.0, 2463.0]
["packet", 988.0, 2824.0]
["uharc", 2996.0, 50.0]
["TarsaLZP", 406.0, 2000.0]
["GRZipII", 528.0, 58.0]
["4x4", 626.0, 269.0]
["rzm", 2417.0, 160.0]
["pim", 1528.0, 88.0]
["CTW", 38745.0, 144.0]
["boa", 8053.0, 17.0]
["yxz", 719.0, 1590.0]
["zstd", 703.2, 792.0]
["tornado", 1482.0, 1290.0]
["LZPXj", 1500.0, 1316.0]
["scmppm", 1352.0, 20.0]
["acb", 21539.0, 16.0]
["crushm", 1266.0, 39.0]
["PX", 3647.0, 66.0]
["DGCA", 1128.0, 76.0]
["Squeez", 2691.0, 365.0]
["fpaq2", 40369.0, 131.0]
["TinyCM", 2672.0, 1083.0]
["dmc", 1397.0, 1800.0]
["lza", 458.7, 2000.0]
["brotli", 3405.9, 437.0]
["szip", 1480.0, 21.0]
["balz", 3890.0, 206.0]
["lzpm", 15452.0, 740.0]
["qazar", 6641.0, 105.0]
["KuaiZip", 1108.0, 197.0]
["qc", 9721.0, 151.0]
["ppms", 684.0, 1.8]
["dzo", 1247.0, 200.0]
["comprox_ba", 498.0, 226.0]
["WinTurtle", 510.0, 583.0]
["diz", 43986.0, 1350.0]
["cabarc", 1634.0, 20.0]
["sr3", 308.0, 68.0]
["bzip2", 508.0, 8.0]
["rh5_x64", 205.4, 145.0]
["RangeCoderC", 4896.0, 1116.0]
["quad", 1072.0, 34.0]
["WinACE", 1157.0, 4.0]
["lzsr", 282.0, 6.0]
["libzling", 110.0, 28.0]
["xpv5", 2875.0, 9.0]
["sr3c", 305.0, 5.0]
["lzc", 365.0, 550.0]
["nakamichi", 8200001.3, 302000.0]
["crush", 950.9, 148.0]
["xeloz", 1079.0, 230.0]
["bzp", 230.0, 3.0]
["ha", 3810.0, 0.8]
["ulz", 326.1, 490.0]
["irolz", 418.0, 17.0]
["lcssr", 16467.0, 1184.0]
["zlite", 89.0, 36.0]
["lazy", 297.0, 96.0]
["zhuff", 27.5, 32.0]
["slug", 60.0, 14.0]
["pigz", 2250.0, 25.0]
["kzip", 6125.0, 121.0]
["uc2", 423.0, 4.0]
["thor", 98.0, 16.0]
["etincelle", 47.0, 976.0]
["lz5", 10581.7, 1139.0]
["gzip124hack", 168.0, 1.0]
["doboz", 536.4, 1200.0]
["gzip", 118.0, 1.6]
["Info-ZIP", 139.0, 0.1]
["pkzip", 221.0, 2.5]
["jar", 213.0, 1.2]
["PeaZip", 486.0, 8.0]
["arj", 329.0, 3.0]
["lzgt3a", 4467.0, 2.0]
["lzuf", 486.0, 2.0]
["pucrunch", 3112.0, 2.0]
["packARC", 2845.0, 23.0]
["urban", 831.0, 6.0]
["lzop", 301.0, 1.8]
["lzw", 3628.0, 18.0]
["MTCompressor", 290.0, 74.0]
["lz4x", 80.4, 114.0]
["arbc2z", 5333.0, 68.0]
["lz4", 91.0, 20.0]
["lzss", 109.3, 145.0]
["xdelta", 1051.0, 47.0]
["brieflz", 28.5, 3.0]
["mtari", 179.0, 18.0]
["lzf", 70.2, 151.0]
["srank", 96.0, 2.0]
["QuickLZ", 60.0, 3.0]
["stz", 27.0, 3.0]
["compress", 173.0, 1.8]
["lzrw3-a", 55.0, 2.0]
["fcm1", 489.0, 1.0]
["runcoder1", 296.0, 4.0]
["data-shrinker", 14.0, 2.0]
["lzwc_bitwise", 257.0, 71.0]
["exdupe", 27.0, 1000.0]
["lzv", 2.6, 3.0]
["FastLZ", 31.0, 1.0]
["sharc", 29.0, 6.0]
["flzp", 116.0, 8.0]
["alba", 249.0, 4.0]
["snappy", 37.0, 0.1]
["bpe", 667.0, 0.5]
["kwc", 583.0, 668.0]
["bpe2", 650.0, 0.5]
["fpaq0f2", 429.0, 0.4]
["ppp", 139.0, 1.0]
["ksc", 47967.0, 1700.0]
["lzbw1", 27.0, 55.0]
["lzp2", 11.0, 15.0]
["NTFS", 10.0, 0.1]
["shindlet_fs", 216.0, 0.6]
["arb255", 5125.0, 1.6]
["compact", 380.0, 0.2]
["TinyLZP", 70.0, 10.0]
["smile", 20931.0, 0.6]
["barf", 809.0, 4.0]
["arb2x", 5080.0, 1.6]
cmix v18 14,838,332 115,714,367 208,961 s 115,923,328 602867 601569 25738 CM 83
phda9 1.8 15,010,414 116,544,849 42,944 xd 116,587,793 86182 86305 6319 CM 83
nncp 2019-11-16 16,292,774 119,167,224 238,452 xd 119,405,676 826048 1156467 5360 LSTM 84
paq8pxd_v48_bwt1 -s14 16,004,759 126,183,029 153,295 s 126,336,324 579894 51865 CM 81
durilca'kingsize -m13000 -o40 -t2 16,209,167 127,377,411 407,477 xd 127,784,888 1398 1797 13000 PPM 31
cmve 0.2.0 -m2,3,0x7fed7dfd 16,424,248 129,876,858 307,787 x 130,184,645 1140801 19963 CM 81
paq8hp12any -8 16,230,028 132,045,026 330,700 x 132,375,726 37660 37584 1850 CM 41
drt|emma 1.23 16,523,517 134,164,521 1,358,251 xd 135,522,772 73006 67097 3800 CM 81
zpaq 6.42 -m s10.0.5fmax6 17,855,729 142,252,605 4,760 sd 142,257,365 6699 14739 14000 CM 61
drt|lpaq9m 9 17,964,751 143,943,759 110,579 x 144,054,338 868 898 1542 CM 41
10
mcm 0.83 -x11 18,233,295 144,854,575 79,574 s 144,934,149 394 281 5961 CM 72
nanozip 0.09a -cc -m32g -p1 -t1 -nm 18,594,163 148,545,179 783,642 x 149,328,821 1149 1141 32000 CM 74
xwrt 3.2 -l14 -b255 -m96 -s -e40000 -f200 18,679,742 151,171,364 52,569 s 151,223,933 2537 2328 1691 CM
fp8 v3 -8 18,438,169 153,188,176 50,068 s 153,238,244 20605 22593 1192 CM 26
WinRK 3.03 pwcm +td 800MB SFX 18,612,453 156,291,924 99,665 xd 156,391,589 68555 800 CM 10
ppmonstr J -m1700 -o16 19,055,092 157,007,383 42,019 x 157,049,402 3574 ~3600 1700 PPM
zcm 0.93 -m8 -t1 19,572,089 159,135,549 227,659 x 159,363,208 421 411 3100 CM 48
slim 23d -m1700 -o12 19,077,276 159,772,839 69,453 x 159,842,292 5232 ~5400 1700 PPM
bwmonstr 0.02 20,307,295 160,468,597 69,401 x 160,537,998 331801 156147 590 BWT 30
nanozipltcb 0.09 20,537,902 161,581,290 133,784 x 161,715,074 64 30 3350 BWT 40
20
M03 1.1b 1000000000 20,710,197 163,667,431 50,468 x 163,717,899 457 406 5735 BWT 52
glza 0.10.1 -x -p3 20,356,097 163,768,203 69,935 s 163,838,138 8184 11.9 8205 Dict 67
bcm 0.14 c1000 20,736,614 163,885,873 74,569 x 163,960,442 162 153 5000 BWT 60
bsc 2.00 -b1000p 20,789,147 163,888,465 122,581 s 164,011,046 237 199 5095 BWT 39
bbb m1000 20,847,290 164,032,650 11,227 s 164,043,877 4524 2619 1401 BWT
pcompress 3.1 -c libbsc -l14 -s1000m 20,769,968 163,391,884 1,370,611 x 164,762,495 359 74 3300 BWT 48
paq9a -9 19,974,112 165,193,368 13,749 s 165,207,117 3997 4021 1585 CM
uda 0.300 19,393,460 166,272,261 11,264 x 166,283,525 25282 25174 180 CM
BWTmix v1 c10000 20,608,793 167,852,106 9,565 x 167,861,671 1794 690 5000 BWT 49
lrzip 0.612 -z -L 9 -p 1 19,847,690 169,318,794 99,363 x 169,418,157 2987 2929 2700 CM 33
30
cm4_ext 20,188,048 170,566,799 204,782 x 170,771,581 4123 4130 1906 CM 26
M1x2 v0.6 7 enwik7.txt 20,723,056 172,212,773 38,467 s 172,251,240 711 715 1051 CM 26
cmm4 v0.1e 96 20,569,034 172,669,955 31,314 x 172,701,269 2052 2056 1321 CM
lstm-compress v3 20,318,653 173,874,407 144,567 s 174,018,974 92342 91876 9 LSTM 83
ccmx 1.30 7 20,857,925 174,142,092 15,014 x 174,157,106 1313 1338 1332 CM
bit 0.7 -p=5 20,823,204 174,425,039 62,493 x 174,487,532 2050 2100 663 CM 26
mcomp 2.00 -mw -M320m 21,103,670 174,388,351 172,531 x 174,560,882 473 399 1643 BWT 26
epmopt|epm r9 -m800 -n20 --fixedorder:12 19,713,502 174,817,424 141,101 x 174,958,525 3179 3376 800 PPM
WinUDA 2.91 mode 3 (194 MB) 20,332,366 174,975,730 17,203 x 174,992,933 23610 23473 194 CM
dark 0.51 -b333mf 21,169,819 175,471,417 34,797 x 175,506,214 533 453 1692 BWT
40
FreeArc 0.40pre-4 -mppmd:1012m:o13:r1 20,931,605 175,254,732 748,202 x 176,002,934 1175 1216 1046 PPM
hook v1.4 1700 21,990,502 176,648,663 37,004 x 176,685,667 741 695 1777 DMC 26
7zip 4.46a -m0=ppmd:mem=1630m:o=10 ... 21,197,559 178,965,454 0 xd 178,965,454 503 546 1630 PPM 23
rings 2.5 -m8 -t1 20,873,959 178,747,360 240,523 x 178,987,883 280 163 2518 BWT 48
pimple2 20,871,457 180,251,530 78,642 x 180,330,172 18474 17992 128 CM
ash 04a /m700 /o10 19,963,105 180,735,542 11,137 x 180,746,679 6100 5853 700 CM
bce3 22,729,148 180,732,702 19,889 s 180,752,591 1151 2444 5000 CM 71
ocamyd LTCB 1.0 -s0 -m3 21,285,121 182,359,986 21,030 x 182,381,016 108960~110000 300 DMC 6
bee 0.79 b0154 -m3 -d8 20,975,994 182,373,904 57,046 x 182,430,950 9295 9285 512 PPM
uhbc 1.0 -m3 -b100m 20,930,838 182,918,172 56,242 x 182,974,414 1569 809 800 BWT
50
smac 1.20 21,781,544 183,190,888 4,356 x 183,195,244 4249 4399 1542 CM 26
ppmd J1 -m256 -o10 -r1 21,388,296 183,964,915 11,099 s 183,976,014 880 895 256 PPM
tc 5.2 dev 2 21,481,399 184,939,711 41,112 x 184,980,823 3637 3655 230 CM
bwtsdc v1 23,414,955 185,709,858 8,421 s 185,718,279 2100 420 5213 BWT 47
fbc v1.1 333333334 22,554,133 185,975,548 23,576 x 185,999,124 451 415 1647 BWT 55
ppmvc v1.1 -m256 -o8 -r1 21,484,294 186,208,405 25,241 x 186,233,646 898 913 272 PPM
chile 0.4 -b=244141 22,218,917 186,979,614 11,530 s 186,991,144 2513 512 1426 BWT
bwtdisk 0.9.0 -b 2 -m 3500 24,725,277 190,004,306 169,579 s 190,173,885 1124 3500 BWT 48
CTXf 0.75 pre b1 -me 22,072,783 191,008,871 57,337 x 191,066,298 1112 1037 78 PPM
m03exp 2005-02-15 32MB blocks 21,948,192 191,250,500 44,593 x 191,295,093 ~4800 ~2100 256 BWT
60
Stuffit 12.0.0.17 -m=4 -l=16 -x=30 22,105,654 190,372,707 2,658,122 xd 193,030,829 628 658 1062 PPM
plzma v3b c2 ... (see below) 24,206,571 193,240,160 101,221 x 193,341,381 8889 55 10110 LZ77 58
crook v0.1 -m1600 -O8 22,503,627 193,333,159 8,539 s 193,341,698 483 513 1641 PPM 26
ppmx 0.03 22,572,808 193,643,464 54,964 x 193,698,428 777 784 609 PPM 26
lzturbo 1.1 -49 -b1000 -p0 24,416,777 194,681,713 110,670 x 194,792,383 1920 9 14700 LZ77 59
enc 0.15 aq 22,156,982 195,604,166 94,888 x 195,699,054 6843 6868 50 CM
comprolz 0.11.0-bugfix1 -b250 -f 22,813,215 196,651,379 29,453 x 196,680,832 984 308 688 ROLZ 26
sbc 0.970r2 -ad -m3 -b63 22,470,539 197,066,203 99,094 xd 197,165,297 1733 313 224 BWT
xz 5.2.1--lzma2=preset=9e,dict=1GiB,lc=4,pb=0 24,703,772 197,331,816 36,752 xd 197,368,568 5876 20 6000 LZ77 73
WinRAR 3.60b3 -mc7:128t+ -sfxWinCon.sfx 22,713,569 198,454,545 0 xd 198,454,545 506 415 128 PPM
70
quark v0.95r beta -m1 -d25 -l8 22,988,924 198,600,023 80,264 x 198,680,287 27952 217 534 LZ77
lzip 1.14-rc3 -9 -s512MiB 24,756,063 199,410,543 21,682 s 199,432,225 2409 21 5632 LZ77 57
comprox 0.11.0-bugfix1 -b250 -f -m100 23,064,386 199,515,912 34,176 x 199,550,088 917 153 688 LZ77 26
bssc 0.95 alpha -b16383 23,117,061 201,810,709 45,489 x 201,856,198 578 217 140 BWT 4
flashzip 1.0.0 -mx7 -b7 23,869,034 202,363,445 123,053 x 202,486,498 1296 122 802 ROLZ 26
lzham 1.0 -d29 -x 25,002,070 202,237,199 191,600 s 202,428,799 1096 6.6 7800 LZ77 70
csarc 3.3 -m5 -d1024m 24,516,202 203,995,005 69,848 s 204,064,853 621 22 2463 LZ77 48
packet 1.9 -mx -b512 -h8 24,968,492 204,195,438 261,967 x 204,457,405 974 14 2824 LZ77 48
uharc 0.6b -mx -md32768 23,911,123 208,026,696 73,608 xd 208,100,304 1666 1330 50 PPM
TarsaLZP Jan 29 2012 24,751,389 208,867,187 13,081 s 208,880,268 203 ~2000 LZP 54
80
GRZipII 0.2.4 -b8m 23,846,878 208,993,966 41,645 s 209,035,641 312 216 58 BWT
4x4 0.2a 4t (grzip:m1:h18) 23,833,244 208,787,642 317,097 x 209,104,739 386 240 269 BWT
rzm 0.07h 24,361,070 210,126,103 17,667 x 210,143,770 2336 81 160 ROLZ
pim 2.50 best 24,303,638 210,124,895 330,901 x 210,455,796 764 ~764 88 PPM
CTW 0.1 -d6 -n16M -f16M 23,670,293 211,995,206 43,247 x 212,038,452 19221 19524 144 CM
boa 0.58b -m15 24,322,643 213,845,481 55,813 x 213,901,294 3953 ~4100 17 PPM
yxz 0.11 -m9 -b7 -h6 25,754,856 214,317,684 131,062 x 214,448,746 642 77 1590 LZ 26
zstd 0.6.0 -22 --ultra 25,405,601 215,674,670 69,687 s 215,744,357 701 2.2 792 LZ77 76
tornado 0.6 -16 25,768,105 217,749,028 83,694 s 217,832,722 1482 9 1290 LZ77 48
LZPXj 1.2h 9 25,205,783 217,880,584 4,853 s 217,885,437 783 717 1316 PPM
90
scmppm 0.93.3 -l 9 25,198,832 217,867,392 37,043 s 217,904,435 708 644 20 PPM
acb 2.00c u 25,063,656 218,473,968 38,976 x 218,512,944 10656 10883 16 LZ77 26
crushm 25,013,576 218,656,416 30,097 x 218,686,513 617 649 39 CM 26
PX v1.0 24,971,871 219,091,398 3,054 s 219,094,452 1838 1809 66 CM 3
DGCA 1.10 default+SFX 25,203,248 219,655,072 0 xd 219,655,072 858 270 76
Squeez 5.20.4600 sqx2.0 32MB Ultra 25,118,441 220,004,873 91,019 xd 220,095,892 2575 116 365
fpaq2 25,287,775 221,242,386 3,429 s 221,245,815 20183 20186 131 CM
TinyCM 0.1 9 25,913,605 221,773,542 12,553 x 221,786,095 1342 1330 1083 CM 26
dmc c 1800000000 25,320,517 222,605,607 2,220 s 222,607,827 676 721 1800 DMC
lza 0.82b -mx9 -b7 -h7 26,396,613 222,808,457 285,766 x 223,094,223 449 9.7 2000 LZ77 48
100
brotli 18-Feb-2016 -q 11 -w 24 25,764,698 223,597,884 542,385 s 224,140,269 3400 5.9 437 LZ77 48
szip 1.12a -b41o16 26,120,472 227,586,463 31,708 x 227,618,171 1191 289 21 BWT 26
balz 1.13 ex 26,421,416 228,337,644 49,024 x 228,286,668 3700 190 206 ROLZ
lzpm 0.11 9 26,501,542 229,083,971 46,824 x 229,130,795 15395 57 740 ROLZ
qazar 0.0pre5 -l7 -d9 -x7 26,455,170 229,846,871 71,959 x 229,918,830 5738 903 105 LZP
KuaiZip 2.3.2 x86 25,895,915 227,905,650 3,857,649 x 231,763,299 1061 47 197 LZ77 26
qc 0.050 -8 26,763,343 232,784,501 46,100 x 232,830,601 8218 1503 151
ppms J -o5 26,310,248 233,442,414 16,467 x 233,458,881 330 354 1.8 PPM
dzo beta 26,616,115 235,056,859 618,883 x 235,675,742 1088 159 200 LZ77 26
comprox_ba 20110929 27,828,189 242,846,243 4,134 s 242,850,377 397 101 226 BWTS 48
110
WinTurtle 1.60 512 MB buffer 28,379,612 245,217,944 160,090 x 245,378,034 273 237 583 PPM
diz 26,545,256 246,679,382 12,945 s 246,692,327 21240 22746 1350 PPM 26
cabarc 1.00.0601 -m lzx:21 28,465,607 250,756,595 51,917 xd 250,808,853 1619 15 20 LZ77
sr3 28,926,691 253,031,980 9,399 s 253,054,625 148 160 68 SR 26
bzip2 1.0.2 -9 29,008,736 253,977,839 30,036 x 254,007,875 379 129 8 BWT
rh5_x64 -window:27 c6 29,078,552 254,220,469 36,744 x 254,257,213 196 9.4 145 ROLZ 48
RangeCoderC v1.7 c7 26 28,788,013 254,527,369 7,858 x 254,535,227 2460 2436 1116 CM 26
quad v1.11 -x 29,110,579 256,145,858 13,387 s 256,159,245 956 116 34 ROLZ
WinACE -sfx -m5 -d4096 29,481,470 257,237,710 0 xd 257,237,710 1080 77 4
lzsr 0.01 29,433,834 258,912,605 40,287 x 258,952,892 194 88 6 LZ77 26
120
libzling 20160107 e4 29,721,114 259,475,639 35,582 s 259,511,221 83 27 28 ROLZ 48
xpv5 c2 29,963,217 262,525,246 14,371 x 262,539,617 2359 516 9 ROLZ 26
sr3c 1.0 29,731,019 266,035,006 7,701 x 266,042,707 160 145 5 SR 26
lzc v0.08 10 30,611,315 266,565,255 11,364 x 266,576,619 302 63 550 LZ77
nakamichi 2019-Jul-01 32,917,888 277,293,058 112,899 s 277,405,957 8200000 1.3 302000 LZSS 85
crush 1.00 cx 31,731,711 279,491,430 2,489 s 279,493,919 948 2.9 148 LZ77 60
xeloz 0.3.5.3 c889 32,441,272 283,621,211 18,771 s 283,639,982 1079 8 230 LZ77 48
bzp 0.2 31,563,865 283,908,295 36,808 x 283,945,103 110 120 3 LZP
ha 0.98 a2 31,250,524 285,739,328 28,404 x 285,767,732 2010 1800 0.8 PPM
ulz 0.06 c9 32,945,292 291,028,084 49,450 x 291,077,534 325 1.1 490 LZ77 82
130
irolz 33,310,676 292,448,365 4,584 s 292,452,949 274 144 17 ROLZ 26
lcssr 0.2 -b7 -l9 34,549,048 296,160,661 8,802 x 296,169,463 8186 8281 1184 SR
zlite 33,975,840 298,470,807 4,880 s 298,475,687 61 28 36 ROLZ 26
lazy 1.00 5 35,024,082 306,245,949 5,986 s 306,251,935 273 24 96 LZ77 26
zhuff 0.97 beta -c2 34,907,478 308,530,122 63,209 x 308,593,331 24 3.5 32 LZ77 48
slug 1.27 35,093,954 309,201,454 6,809 x 309,208,263 32 28 14 ROLZ
pigz 2.3 -11 35,002,893 309,812,953 52,717 s 309,865,670 2237 13 25 LZ77 48
kzip May 13 2006 /b1024 35,016,649 310,188,783 29,184 xd 310,217,967 6063 62 121 LZ77 2
uc2 rev 3 pro -tst 35,384,822 312,767,652 123,031 x 312,890,683 360 63 4 LZ77
thor 0.95 e4 35,795,184 314,092,324 49,925 x 314,142,249 64 34 16 LZP
140
etincelle a3 35,776,971 314,801,710 44,103 x 314,845,813 29 18 976 ROLZ 26
lz5 1.3.3 -18 36,514,408 319,510,433 138,210 s 319,648,643 10578 3.7 1139 LZ77 48
gzip124hack 1.2.4 -9 36,273,716 321,050,648 62,653 x 321,113,301 149 19 1 LZ77
doboz 0.1 36,367,430 322,415,409 83,591 x 322,499,000 533 3.4 1200 LZ77 48
gzip 1.3.5 -9 36,445,248 322,591,995 38,801 x 322,630,796 101 17 1.6 LZ77
Info-ZIP 2.3.1 -9 36,445,373 322,592,120 57,583 x 322,649,703 104 35 0.1 LZ77
pkzip 2.0.4 -ex 36,556,552 323,403,526 29,184 xd 323,432,710 171 50 2.5 LZ77
jar (Java) 0.98-gcc cvfM 36,520,144 323,747,582 19,054 x 323,766,636 118 95 1.2 LZ77
PeaZip better, no integrity check 36,580,548 323,884,274 561,079 x 324,445,353 243 243 8 LZ77 20
arj 3.10 -m1 37,091,317 328,553,982 143,956 x 328,697,938 262 67 3 LZ77 26
150
lzgt3a 37,444,440 334,405,713 4,387 xd 334,410,100 1581 2886 2 LZ77
lzuf Apr.15.2009 38,036,810 338,488,945 4,070 xd 338,493,015 446 40 2 LZ77 26
pucrunch -d -c0 39,199,165 350,265,471 34,359 s 350,299,830 2649 463 2 LZ77
packARC v0.7RC11 -sfx -np 38,375,065 361,905,425 0 xd 361,905,425 1359 1486 23 CM
urban 38,215,763 362,677,440 4,280 s 362,681,720 381 450 6 o2 48
lzop v1.01 -9 41,217,688 366,349,786 54,438 x 366,404,224 289 12 1.8 LZ77
lzw 0.2 41,960,994 367,633,910 671 s 367,634,581 3597 31 18 LZW
MTCompressor v1.0 41,295,546 370,152,396 3,620 x 370,156,016 173 117 74 LZ77 26
lz4x 1.02 c4 41,950,112 372,068,437 48,609 x 372,117,046 79 1.4 114 LZ77 68
arbc2z 38,756,037 379,054,068 6,255 sd 379,060,323 2659 2674 68 PPM
160
lz4 v1.2 -c2 42,870,164 379,999,522 49,128 x 380,048,650 91 6 20 LZ77 26
lzss 0.02 cx 42,874,387 380,192,378 48,114 x 380,240,492 107 2.3 145 LZSS 63
xdelta 3.0u -9 44,288,463 389,302,725 107,985 x 389,410,710 1021 30 47 LZ77
brieflz 1.1.0 43,300,800 390,122,722 14,907 s 390,137,629 21 7.5 3 LZ77 48
mtari 0.2 41,655,528 397,232,608 4,156 s 397,236,764 80 99 18 CM 26
lzf 1.02 cx 45,198,298 406,805,983 48,359 x 406,854,342 68 2.2 151 LZ77 68
srank 1.1 -C8 43,091,439 409,217,739 6,546 x 409,224,285 51 45 2 SR
QuickLZ 1.30b (quick3) 46,378,438 410,633,262 44,202 x 410,677,464 48 12 3 LZ77
stz 0.7.2 -c2 47,192,312 416,524,596 41,941 x 416,566,537 14 13 3 LZ77 26
compress 4.3d 45,763,941 424,588,663 16,473 x 424,605,136 103 70 1.8 LZW
170
lzrw3-a 48,009,194 438,253,704 4,750 x 438,258,454 38 17 2 LZ77
fcm1 45,402,225 447,305,681 1,116 s 447,306,797 228 261 1 CM1
runcoder1 46,883,939 458,125,932 5,488 s 458,131,420 140 156 4 o1 26
data-shrinker 23Mar2012 51,658,517 459,825,318 3,706 s 459,829,024 14 4 2 LZ77 26
lzwc_bitwise 0.7 46,639,414 463,884,550 4,183 x 463,888,733 123 134 71 LZW 26
exdupe 0.3.3 53,717,422 478,788,378 1,092,986 x 479,881,364 27 5 1000 LZ77 48
lzv 0.1.0 54,950,847 488,436,027 10,385 x 488,446,412 4 2.6 3 LZ77 48
FastLZ Jun 12 2007 54,658,924 493,066,558 7,065 xd 493,073,623 18 13 1 LZ77
sharc 0.9.11b -c2 53,175,042 494,421,068 81,001 s 494,502,069 15 14 6 LZP 26
flzp v1 57,366,279 497,535,428 3,942 s 497,539,370 78 38 8 LZP
180
alba 0.5.1 cd 52,728,620 515,760,096 4,870 s 515,764,966 239 10 4 BPE 48
snappy 1.0.1 58,350,605 527,772,054 23,844 s 527,795,898 25 12 0.1 LZ77 26
bpe 5000 4096 200 3 53,906,667 532,250,688 1,037 sd 532,251,725 639 28 0.5 Dict 26
kwc 54,097,740 532,622,518 15,186 x 532,637,704 438 145 668 Dict 26
bpe2 v3 55,289,197 542,748,980 2,979 s 542,751,959 518 132 0.5 Dict 26
fpaq0f2 56,916,872 558,645,708 3,066 x 558,648,769 222 207 0.4 o0
ppp 61,657,971 579,352,307 1,472 s 579,353,779 80 59 1 SR
ksc 4 59,511,259 580,557,413 13,507 x 580,570,920 40050 7917 1700 SR 48
lzbw1 0.8 67,620,436 590,235,688 21,751 x 590,257,439 15 12 55 LZP 26
lzp2 0.7c 67,909,076 598,076,882 40,819 x 598,117,701 11 8 15 LZP 26
190
NTFS LZNT1 76,955,648 636,870,656 0 636,870,656 10 9 0.1 LZ77 26
shindlet_fs 62,890,267 637,390,277 1,275 xd 637,391,552 113 103 0.6 o0
arb255 63,501,996 644,561,595 4,871 sd 644,566,466 2551 2574 1.6 o0
compact 63,862,371 648,370,029 3,600 sd 648,373,629 216 164 0.2 o0
TinyLZP 0.1 79,220,546 694,274,932 2,811 s 694,277,743 32 38 10 LZP 26
smile 71,154,788 695,562,502 207 xd 695,562,709 10517 10414 0.6 MTF 26
barf (2 passes) 76,074,327 758,482,743 983,782 s 759,466,525 756 53 4 LZ77
arb2x v20060602 99,642,909 995,674,993 3,433 sd 995,678,426 2616 2464 1.6 o0b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment