

       ARCHIVER COMPARISON -- Version 3.00

       June 9, 1993

   by  Dean W. Cooper



   What is this?
   -------------

      This file presents the results of tests that I ran on a number
   of archivers including the latest versions of PKZIP, ARJ, LHA, and
   others.  Tests were run on 12 different sets of files of various
   types.  The program DCCMP (included in this distribution), is the
   program I wrote to automatically run the tests.  It can be used to
   run tests on your own data.

      This file and the program DCCMP may be freely used and distributed,
   but please distribute all files together.


   Who am I?
   ---------

      Years ago when PKARC was the main archiver, I wrote the DWC
   archiver which was equal in speed and compression size to it.
   Although I haven't written a new archiver lately, I am still curious
   as to how the new archivers are doing.  So, from time to time I run
   some tests.

      Questions?  Comments?  Leave a message for me at:

            (414) 789-4210  Exec-PC
            (516) 536-8723  Sound-of-Music BBS (Home of SMARTNET)
            (602) 326-2403  (voice)

      Or write to:

            Dean W. Cooper
            3078 N. Palo Verde
            Tucson, AZ  85716


   What is contained in this distribution?
   ---------------------------------------

      The following is a list of files I have included in this distribution
   and what they are:

      ACMP-300.TXT   --  Archiver comparison, version 3.00 (this file).
                         Contains the results of the tests in raw form and
                         in summarized tabular format.  Also includes general
                         information, a list of what archivers were tested,
                         and a list of what each test set was composed of.

      DCCMP.EXE      --  My comparer program.  This is what I used to generate
                         the raw data.  Simply run "DCCMP" to get complete
                         usage information.

      ARCHIVE.CMP    --  The DCCMP format batch file that tells my program
                         what archivers to run, and how to run them.

      ACMP.BAT       --  The DOS batch file I used to run my DCCMP program
                         with.


   What was tested?
   ----------------

      I tested 12 separate sets of files.  The test sets were compressed
   and extracted three times each in order to make sure timings were
   accurate.

   The following archivers and options were tested:

      PKZIP     2.04g  -a -ex       -- Phil Katz's PKZIP (max compression)
      PKZIP     2.04g  -a -en       -- .. PKZIP (normal compression)
      PKZIP     2.04g  -a -ef       -- .. PKZIP
      PKZIP     2.04g  -a -es       -- .. PKZIP (fastest)
      ARJ       2.39f   a -m1       -- Robert Jung's ARJ (best compression)
      ARJ       2.39f   a -m3       -- Robert Jung's ARJ
      ARJ       2.39f   a -m4       -- Robert Jung's ARJ (fastest)
      ARJ       2.39f   a -jm       -- Robert Jung's ARJ (maximum compression)
      ARJ       2.39f   a -jm1      -- Robert Jung's ARJ (faster max compression)
      SQZ       2.08.3e a -q0       -- Swedish archiver (best compression)
      SQZ       2.08.3e a -q3       -- Swedish archiver
      SQZ       2.08.3e a -q6       -- Swedish archiver
      SQZ       2.08.3e a -q9       -- Swedish archiver
      SQZ       2.08.3e a -m1       -- Swedish archiver (fastest)
      LHA       2.52    a -n        -- Yoshi's latest version of LHARC
      HYPER     2.5    -a           -- German archiver
      ZIP       1.9    -1           -- Freeware ZIP compatible (fastest)
      ZIP       1.9    -3           -- Freeware ZIP compatible
      ZIP       1.9    -6           -- Freeware ZIP compatible
      ZIP       1.9    -9           -- Freeware ZIP compatible (best compression)
      HAP       3.00    a           -- Archiver from The Netherlands

      Note that most of the archivers are tested with multiple options.  The
   options offer a range of trade-offs between compression size and compression
   speed.  Indeed, I did not attempt to test ALL possible options but just a
   sampling to give a good idea of the possible range for each archiver.



   The test system?
   ----------------

      The tests were run on a 386 PC compatible with Peter Norton SI
   ratings of:

         Computing Index:  28.8
              Disk Index:   3.0

   o The computer was setup as follows:

         - DOS 5.0
         - Windows 3.1 Smartdrv, 2 Meg, with write cache On.
         - Windows 3.1 Ramdrive, 1.2 Meg
         - Windows 3.1 EMM386, 3.5 Meg XMS memory
         - 517K conventional memory available to archivers
         - TMP & TEMP environment variables pointing to ramdrive

   o My computer has one 302 Meg hard disk partitioned into 6 logical
     drives.  All tests were run on the 42 Meg partition F:.

   o All tests were run three times to get accurate timings.

   o Each set of files was put in a separate directory on drive F: (in the
     directories f:\test1, f:\test2, etc).

   o The files were extracted to the empty directory f:\temp.
   
   o In the following, the line "DCCMP ..." tells the exact arguments that
     were passed to the comparer program DCCMP.



   What to look for...
   -------------------

      The wide range of compression options makes it difficult to rate which
   archiver is the best since the fastest options usually offer very poor
   compression and the maximum compression options are usually very slow
   (and often with little actual savings).  Thus, we need to look for the
   following:

      Category 1: Great compression size, ok speed.

         Look for an archiver that gets great compression size, but without
         making you wait forever.  Waiting a little longer for a significant
         improvement is OK, but it is not OK to wait a lot longer for only
         a few more bytes saved.

      Category 2: Great compression speed, ok size.

         Look for an archiver that is very fast without sacrificing a lot in
         compression size.

      Category 3: Absolute best compression size, speed doesn't matter.

         Just look for the archiver that compresses the smallest and ignore
         how long it took to do it, or how long it will take to extract.

      Category 4: Great extraction speed, decent compression.
 
         Look for an archiver that can extract fast, but only if its
         compression was good enough to make de-compression meaningful.


      On each of the 12 test sets, I will rate the archivers and select a
   first, second, and third place winner for each of the above categories.
   Then, at the end, I will list the cumulative results.  However, since
   archivers vary depending on the type of data compressed, look for the
   best archiver on the type of data you use the most.

      Please note that the ratings are a bit subjective, so if you don't
   like or trust my judgments, then take a good look at the raw numbers
   yourself.

      Of course there are other factors to consider in archivers like
   features, support, popularity, etc., but this particular comparison does
   not specifically measure those items.



   The results...
   --------------


   ---- TEST SET  1 -----------------------------------------------------

   Files from the Apogee game Major Stryker Ver 1.3.  The two large files
     contain a lot of graphical data.

   catalog.exe      27,019 bytes
   file_id.diz         347 bytes
   license.doc       4,490 bytes
   major.exe        84,250 bytes
   order.frm         2,855 bytes
   volume1a.ms1    890,069 bytes
   volume1b.ms1    989,752 bytes
                   -------
                 1,998,782 total bytes in 7 files


            DCCMP run as: "DCCMP -3 -ts -otest1.rsl archive test1 f:\test1\*.* f:\temp *.*"
   Batch ARCHIVE was run:       3 times...
Memory free for programs:     517 K
            Time per run: 0:54:10
      Total time elapsed: 2:42:31


Compression, sorted by: Speed

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
PKZIP     2.04g  -a -es              440  000:24.2    653215      1.00
ARJ       2.39f   a -m4              642  000:35.3    657989      1.46
PKZIP     2.04g  -a -ef              697  000:38.3    594145      1.58
ARJ       2.39f   a -m3              805  000:44.2    601564      1.83
ZIP       1.9    -1                  997  000:54.8    565174      2.26
PKZIP     2.04g  -a -en             1027  000:56.4    564845      2.33
ZIP       1.9    -3                 1126  001: 1.9    548431      2.56
SQZ       1.08.3e a -q9             1261  001: 9.3    582876      2.87
HYPER     2.5    -a                 1352  001:14.3    630809      3.07
SQZ       1.08.3e a -q6             1501  001:22.5    550138      3.41
ZIP       1.9    -6                 1561  001:25.8    538085      3.55
LHA       2.52    a -n              1637  001:29.9    582538      3.72
ARJ       2.39f   a -m1             1751  001:36.2    574631      3.98
SQZ       1.08.3e a -m1             1851  001:41.7    548872      4.20
PKZIP     2.04g  -a -ex             1894  001:44.1    536813      4.30
ARJ       2.39f   a -jm1            2158  001:58.6    573139      4.90
SQZ       1.08.3e a -q3             2543  002:19.7    542306      5.78
ARJ       2.39f   a -jm             4363  003:59.7    571216      9.91
ZIP       1.9    -9                 4917  004:30.2    534439     11.17
SQZ       1.08.3e a -q0             6337  005:48.2    540159     14.39
HAP3      3.00    a                 6432  005:53.4    629815     14.61

  >> Notice how there are several groups of performance here. They are:

       1) 650K size: PKZIP:es, ARJ:m4

          ... Poor compression, but very fast.  PKZIP:es is the pick here
              because it is significantly faster and even has slightly better
              compression size than ARJ:m4.

       2) 600K size: PKZIP:ef, ARJ:m3

          ... Better compression, but slower.  Notice how PKZIP:ef gets the
              better level of compression while being almost as fast as
              ARJ:m4 from level 1.

       3) 560K size: PKZIP:en, ZIP:1

          ... Good compression, slower still.  These two are about the same
              at this level.  Remember, I didn't try testing ARJ:m2.

       4) 548K size: ZIP:3

          ... Inbetween levels.  Here PKZIP does not offer the flexibility
              of ZIP to choose such a variety of levels.  Indeed, I did not
              even test all of ZIP's 9 levels.

       5) 537K size: PKZIP:ex, ZIP:6

          ... Great compression, even slower.  This looks like ZIP:7 (level
              not tested) would have been almost equal to PKZIP:ex.

       6) 534K size: ZIP:9

          ... Best compression, but very slow.  To get 2000 more bytes
              compressed, we had to wait almost 3 minutes longer.  But at
              least ZIP:9 offered the option.

  >> Notice how ARJ falls out of the competition after ARJ:m3.  ARJ:m1 takes
     almost twice as long as PKZIP:en to get poorer compression size.  ARJ:jm1
     and ARJ:jm take even longer, but still don't compress better than PKZIP:en.

  >> SQZ does get good compression, but always lags significantly behind PKZIP
     and ZIP in speed for the same level of compression.  And, although SQZ:q9
     takes 4 minutes longer, it still can't manage to beat PKZIP:ex in
     compression size.

  >> LHA's one level of compression is easily out done by both PKZIP and ZIP
     in both speed and size.

  >> HYPER is slow and compresses poorly.

  >> HAP is Very slow and compresses poorly.


Compression, sorted by: Size

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
ZIP       1.9    -9                 4917  004:30.2    534439      1.00
PKZIP     2.04g  -a -ex             1894  001:44.1    536813      1.00
ZIP       1.9    -6                 1561  001:25.8    538085      1.01
SQZ       1.08.3e a -q0             6337  005:48.2    540159      1.01
SQZ       1.08.3e a -q3             2543  002:19.7    542306      1.01
ZIP       1.9    -3                 1126  001: 1.9    548431      1.03
SQZ       1.08.3e a -m1             1851  001:41.7    548872      1.03
SQZ       1.08.3e a -q6             1501  001:22.5    550138      1.03
PKZIP     2.04g  -a -en             1027  000:56.4    564845      1.06
ZIP       1.9    -1                  997  000:54.8    565174      1.06
ARJ       2.39f   a -jm             4363  003:59.7    571216      1.07
ARJ       2.39f   a -jm1            2158  001:58.6    573139      1.07
ARJ       2.39f   a -m1             1751  001:36.2    574631      1.08
LHA       2.52    a -n              1637  001:29.9    582538      1.09
SQZ       1.08.3e a -q9             1261  001: 9.3    582876      1.09
PKZIP     2.04g  -a -ef              697  000:38.3    594145      1.11
ARJ       2.39f   a -m3              805  000:44.2    601564      1.13
HAP3      3.00    a                 6432  005:53.4    629815      1.18
HYPER     2.5    -a                 1352  001:14.3    630809      1.18
PKZIP     2.04g  -a -es              440  000:24.2    653215      1.22
ARJ       2.39f   a -m4              642  000:35.3    657989      1.23


Extraction, sorted by: Speed

Program   Description             Ticks   Min:Secs  Relative
========  ======================  ======  ========  ========
PKUNZIP   2.04g  -e (-ex)            183  000:10.1      1.00
PKUNZIP   2.04g  -e (-en)            194  000:10.7      1.06
PKUNZIP   2.04g  -e (-ef)            208  000:11.4      1.13
PKUNZIP   2.04g  -e (-es)            219  000:12.0      1.20
LHA       2.52    e -n               269  000:14.8      1.47
ARJ       2.39f   e (-jm1)           285  000:15.7      1.55
ARJ       2.39f   e (-jm)            292  000:16.0      1.60
ARJ       2.39f   e (-m3)            296  000:16.3      1.62
ARJ       2.39f   e (-m1)            297  000:16.3      1.62
ARJ       2.39f   e (-m4)            324  000:17.8      1.77
SQZ       1.08.3e e (-q0)            339  000:18.6      1.85
SQZ       1.08.3e e (-q3)            350  000:19.2      1.91
SQZ       1.08.3e e (-m1)            357  000:19.6      1.95
SQZ       1.08.3e e (-q6)            360  000:19.8      1.96
SQZ       1.08.3e e (-q9)            380  000:20.9      2.07
UNZIP     5.00   -j (-9)             590  000:32.4      3.22
UNZIP     5.00   -j (-6)             610  000:33.5      3.33
UNZIP     5.00   -j (-1)             631  000:34.7      3.45
UNZIP     5.00   -j (-3)             641  000:35.2      3.50
HYPER     2.5    -x                  663  000:36.4      3.62
PAH3      3.00    e                 6280  005:45.1     34.26

  >> The quality of extraction code is clearly shown here with PKUNZIP
     being the best.  LHA, ARJ, and SQZ follow up with respectable
     performance.

  >> But while ZIP might have been on par with PKZIP in compression,  it
     clearly falls behind in de-compression being over 3 times slower.

  >> And PAH is extremely slow.  Look at it!  Almost 6 minutes compared
     to PKUNZIP's 10 seconds!  This either shows very poor code or a
     significantly different algorithm than anyone else.  But I don't
     think it's poor code.  It would be hard to be THAT poor even if one
     tried.  Moreover, the size of the HAP and PAH executables seem to
     indicate it was written in assembler.  The question is then, what
     algorithm is it using?  Perhaps it uses LZ sliding window combined
     with arithmetic coding?

  >> Also notice that PAH's de-compression takes about the same amount of
     time as HAP's compression, while everybody else was considerably faster
     at de-compression the compression.

                             ķ
                               Winners Set  1  
         ķ
          Category 1 (size)    : PKZIP best, then ZIP,   then SQZ 
          Category 2 (speed)   : PKZIP best, then ARJ,   then ZIP 
          Category 3 (abs size): ZIP   best, then PKZIP, then SQZ 
          Category 4 (extract) : PKZIP best, then ARJ,   then SQZ 
         Ľ



   ---- TEST SET  2 -----------------------------------------------------

   The last publicly available source code to DWC versions A5.12 & A4.95.
     These files are from the official source code distribution archive
     A495-512.DWC

   dwc                 768 bytes
   dwc.c           163,840 bytes
   dwcmisc.asm       4,096 bytes
   dwcmisc.c         2,816 bytes
   dwcmod.c         10,752 bytes
   dwcsfx.c         41,472 bytes
   dwcsize.asm      15,616 bytes
   dwcsize.c         7,680 bytes
   dwcspeed.asm     11,520 bytes
   dwcspeed.c        6,400 bytes
   dwcunc.asm       16,000 bytes
   dwcunc.c          8,320 bytes
   dwcv.c           17,536 bytes
   dwcwild.c         8,192 bytes
   header              256 bytes
   makesfx.c        14,208 bytes
   source.doc       33,920 bytes
                   -------
                   363,392 total bytes in 17 files

            DCCMP run as: "DCCMP -3 -ts -otest2.rsl archive test2 f:\test2\*.* f:\temp *.*"
   Batch ARCHIVE was run:       3 times...
Memory free for programs:     517 K
            Time per run: 0:07:50
      Total time elapsed: 0:23:32


Compression, sorted by: Speed

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
PKZIP     2.04g  -a -es               58  000: 3.2    115708      1.00
PKZIP     2.04g  -a -ef               93  000: 5.1     99284      1.59
PKZIP     2.04g  -a -en              121  000: 6.6     95573      2.08
ARJ       2.39f   a -m4              122  000: 6.7    113165      2.10
ARJ       2.39f   a -m3              143  000: 7.9    101371      2.46
ZIP       1.9    -1                  158  000: 8.7     99725      2.72
ZIP       1.9    -3                  178  000: 9.8     97075      3.05
PKZIP     2.04g  -a -ex              187  000:10.3     94376      3.21
SQZ       1.08.3e a -q9              195  000:10.7    101497      3.35
HYPER     2.5    -a                  211  000:11.6    103782      3.62
ZIP       1.9    -6                  218  000:12.0     95211      3.74
ARJ       2.39f   a -m1              253  000:13.9     95823      4.34
SQZ       1.08.3e a -q6              260  000:14.3     95781      4.47
ARJ       2.39f   a -jm1             265  000:14.6     95631      4.55
LHA       2.52    a -n               307  000:16.9     99219      5.27
SQZ       1.08.3e a -m1              332  000:18.2     95305      5.69
SQZ       1.08.3e a -q3              386  000:21.2     94086      6.63
ARJ       2.39f   a -jm              423  000:23.2     95216      7.25
ZIP       1.9    -9                  510  000:28.0     94478      8.75
SQZ       1.08.3e a -q0              767  000:42.1     93601     13.16
HAP3      3.00    a                  805  000:44.2     84126     13.80

  >> With this test set (all C source code and English documentation) we have
     a different mix as compared to the first test set.

  >> Notice that while PKZIP has only four levels, three of the levels are
     faster than any other archiver (albeit, the third level just barely).

  >> While PKZIP:es does compress the poorest, it does compress twice as fast
     as ARJ:m4 and only loses 2500 bytes in size.

  >> Notice that all four levels of PKZIP are the quickest to reach the
     respective compression sizes that they achieve.  For example, ZIP:6 takes
     twice as long as PKZIP:en to reach 95000 bytes in size.  And SQZ:q3 takes
     twice as long as PKZIP:ex to reach 94000 bytes.

  >> If you're willing to wait 4 times as long as PKZIP:ex, then SQZ:q0 will
     squeeze out 800 bytes more for you, but who cares?!

  >> If you forget about PKZIP for a moment, you'll see that ARJ and ZIP are
     about equal in this test set, with SQZ coming in close behind.

  >> But look at HAP's compression.  While everybody else is taking more and
     more time to simply approach 93000 bytes, HAP simply skips by them and
     compresses to 84000 bytes.  A significant improvement.  Obviously,  HAP
     uses a different algorithm.  It's a slow algorithm, but for some types
     of data, it compresses significantly better than any other archiver.

  >> Forget HYPER and LHA (at least in this test case), they are easily
     outdone by the other archivers.


Compression, sorted by: Size

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
HAP3      3.00    a                  805  000:44.2     84126      1.00
SQZ       1.08.3e a -q0              767  000:42.1     93601      1.11
SQZ       1.08.3e a -q3              386  000:21.2     94086      1.12
PKZIP     2.04g  -a -ex              187  000:10.3     94376      1.12
ZIP       1.9    -9                  510  000:28.0     94478      1.12
ZIP       1.9    -6                  218  000:12.0     95211      1.13
ARJ       2.39f   a -jm              423  000:23.2     95216      1.13
SQZ       1.08.3e a -m1              332  000:18.2     95305      1.13
PKZIP     2.04g  -a -en              121  000: 6.6     95573      1.14
ARJ       2.39f   a -jm1             265  000:14.6     95631      1.14
SQZ       1.08.3e a -q6              260  000:14.3     95781      1.14
ARJ       2.39f   a -m1              253  000:13.9     95823      1.14
ZIP       1.9    -3                  178  000: 9.8     97075      1.15
LHA       2.52    a -n               307  000:16.9     99219      1.18
PKZIP     2.04g  -a -ef               93  000: 5.1     99284      1.18
ZIP       1.9    -1                  158  000: 8.7     99725      1.19 
ARJ       2.39f   a -m3              143  000: 7.9    101371      1.20
SQZ       1.08.3e a -q9              195  000:10.7    101497      1.21
HYPER     2.5    -a                  211  000:11.6    103782      1.23
ARJ       2.39f   a -m4              122  000: 6.7    113165      1.35
PKZIP     2.04g  -a -es               58  000: 3.2    115708      1.38


Extraction, sorted by: Speed

Program   Description             Ticks   Min:Secs  Relative
========  ======================  ======  ========  ========
PKUNZIP   2.04g  -e (-ef)             34  000: 1.9      1.00
PKUNZIP   2.04g  -e (-en)             34  000: 1.9      1.00
PKUNZIP   2.04g  -e (-ex)             36  000: 2.0      1.07
PKUNZIP   2.04g  -e (-es)             48  000: 2.6      1.41
LHA       2.52    e -n                57  000: 3.1      1.69
SQZ       1.08.3e e (-m1)             67  000: 3.7      1.99
SQZ       1.08.3e e (-q0)             68  000: 3.7      2.01
SQZ       1.08.3e e (-q3)             68  000: 3.7      2.01
SQZ       1.08.3e e (-q6)             70  000: 3.8      2.07
SQZ       1.08.3e e (-q9)             74  000: 4.1      2.18
ARJ       2.39f   e (-jm)             76  000: 4.2      2.25
ARJ       2.39f   e (-jm1)            77  000: 4.2      2.26
ARJ       2.39f   e (-m1)             79  000: 4.3      2.32
ARJ       2.39f   e (-m3)             81  000: 4.5      2.39
ARJ       2.39f   e (-m4)             87  000: 4.8      2.57
UNZIP     5.00   -j (-9)             115  000: 6.3      3.40
UNZIP     5.00   -j (-3)             125  000: 6.9      3.68
UNZIP     5.00   -j (-6)             126  000: 6.9      3.72
HYPER     2.5    -x                  142  000: 7.8      4.19
UNZIP     5.00   -j (-1)             148  000: 8.1      4.36
PAH3      3.00    e                  884  000:48.6     26.01

  >> These results are about the same as the first test set except this time
     SQZ extracts a little faster than ARJ.

  >> Again, PAH takes a very long time to de-compress and actually takes longer
     then HAP took to compress.

                             ķ
                               Winners Set  2  
         ķ
          Category 1 (size)    : PKZIP best, then SQZ, then ZIP   
          Category 2 (speed)   : PKZIP best, then ZIP, then ARJ   
          Category 3 (abs size): HAP   best, then SQZ, then PKZIP 
          Category 4 (extract) : PKZIP best, then SQZ, then ARJ   
         Ľ



   ---- TEST SET  3 -----------------------------------------------------

   A 16 bit-per-pixel true color digitized image of the grand canyon.

   canyon.img      359,934 bytes


            DCCMP run as: "DCCMP -3 -ts -otest3.rsl archive test3 f:\test3\*.* f:\temp *.*"
   Batch ARCHIVE was run:       3 times...
Memory free for programs:     517 K
            Time per run: 0:09:22
      Total time elapsed: 0:28:06


Compression, sorted by: Speed

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
PKZIP     2.04g  -a -es               83  000: 4.6    211754      1.00
ARJ       2.39f   a -m4              138  000: 7.6    215702      1.66
PKZIP     2.04g  -a -ef              144  000: 7.9    193769      1.74
ARJ       2.39f   a -m3              170  000: 9.3    190086      2.06
ZIP       1.9    -1                  238  000:13.1    187757      2.87
HYPER     2.5    -a                  284  000:15.6    190058      3.42
PKZIP     2.04g  -a -en              291  000:16.0    184117      3.51
SQZ       1.08.3e a -q9              292  000:16.0    193573      3.52
ZIP       1.9    -3                  321  000:17.6    186185      3.87
ARJ       2.39f   a -jm1             339  000:18.6    184832      4.09
ZIP       1.9    -6                  339  000:18.6    185210      4.09
ARJ       2.39f   a -m1              339  000:18.6    184839      4.09
ZIP       1.9    -9                  342  000:18.8    185217      4.13
ARJ       2.39f   a -jm              344  000:18.9    184832      4.14
LHA       2.52    a -n               353  000:19.4    187678      4.26
PKZIP     2.04g  -a -ex              374  000:20.5    183879      4.51
SQZ       1.08.3e a -q6              419  000:23.0    185262      5.05
SQZ       1.08.3e a -m1              505  000:27.7    185658      6.09
SQZ       1.08.3e a -q3              514  000:28.2    184253      6.20
SQZ       1.08.3e a -q0              527  000:29.0    184252      6.36
HAP3      3.00    a                  850  000:46.7    152565     10.24

  >> Again, the fastest version of PKZIP (PKZIP:es) not only is 66% faster
     than the fastest version of ARJ (ARJ:m4), it also compresses better.

  >> Indeed, PKZIP:ef is about the same speed as ARJ:m4, but significantly
     out compresses it.

  >> The first archiver to compress down to the 184000 level is PKZIP:en
     with ARJ:jm1 coming in second.

  >> Except for HAP which takes more than twice as long, PKZIP:ex gets the
     best compression.

  >> But, if you're willing to wait, HAP is the only choice you have to get
     significantly better compression.

  >> Again, neither HYPER nor LHA offer any reason to choose them over the
     other archivers.


Compression, sorted by: Size

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
HAP3      3.00    a                  850  000:46.7    152565      1.00
PKZIP     2.04g  -a -ex              374  000:20.5    183879      1.21
PKZIP     2.04g  -a -en              291  000:16.0    184117      1.21
SQZ       1.08.3e a -q0              527  000:29.0    184252      1.21
SQZ       1.08.3e a -q3              514  000:28.2    184253      1.21
ARJ       2.39f   a -jm1             339  000:18.6    184832      1.21
ARJ       2.39f   a -jm              344  000:18.9    184832      1.21
ARJ       2.39f   a -m1              339  000:18.6    184839      1.21
ZIP       1.9    -6                  339  000:18.6    185210      1.21
ZIP       1.9    -9                  342  000:18.8    185217      1.21
SQZ       1.08.3e a -q6              419  000:23.0    185262      1.21
SQZ       1.08.3e a -m1              505  000:27.7    185658      1.22
ZIP       1.9    -3                  321  000:17.6    186185      1.22
LHA       2.52    a -n               353  000:19.4    187678      1.23
ZIP       1.9    -1                  238  000:13.1    187757      1.23
HYPER     2.5    -a                  284  000:15.6    190058      1.25
ARJ       2.39f   a -m3              170  000: 9.3    190086      1.25
SQZ       1.08.3e a -q9              292  000:16.0    193573      1.27
PKZIP     2.04g  -a -ef              144  000: 7.9    193769      1.27
PKZIP     2.04g  -a -es               83  000: 4.6    211754      1.39
ARJ       2.39f   a -m4              138  000: 7.6    215702      1.41


Extraction, sorted by: Speed

Program   Description             Ticks   Min:Secs  Relative
========  ======================  ======  ========  ========
PKUNZIP   2.04g  -e (-en)             35  000: 1.9      1.00
PKUNZIP   2.04g  -e (-ex)             36  000: 2.0      1.04
PKUNZIP   2.04g  -e (-ef)             37  000: 2.0      1.07
PKUNZIP   2.04g  -e (-es)             49  000: 2.7      1.42
LHA       2.52    e -n                68  000: 3.7      1.96
ARJ       2.39f   e (-m1)             72  000: 4.0      2.07
ARJ       2.39f   e (-jm)             72  000: 4.0      2.07
ARJ       2.39f   e (-jm1)            72  000: 4.0      2.07
ARJ       2.39f   e (-m3)             73  000: 4.0      2.10
SQZ       1.08.3e e (-q0)             85  000: 4.7      2.45
SQZ       1.08.3e e (-m1)             88  000: 4.8      2.53
SQZ       1.08.3e e (-q6)             89  000: 4.9      2.54
ARJ       2.39f   e (-m4)             89  000: 4.9      2.56
SQZ       1.08.3e e (-q9)             90  000: 4.9      2.59
SQZ       1.08.3e e (-q3)             93  000: 5.1      2.66
UNZIP     5.00   -j (-6)             169  000: 9.3      4.84
UNZIP     5.00   -j (-9)             172  000: 9.5      4.92
UNZIP     5.00   -j (-3)             178  000: 9.8      5.10
UNZIP     5.00   -j (-1)             195  000:10.7      5.57
HYPER     2.5    -x                  200  000:11.0      5.71
PAH3      3.00    e                 1006  000:55.3     28.76

  >> PKUNZIP is twice as fast extracting as ARJ, five times as fast as
     UNZIP, and 28 times as fast as PAH!

  >> Again, PAH takes longer to de-compress than HAP took to compress.
     Perhaps PAH isn't as optimized as HAP is.

                             ķ
                               Winners Set  3  
         ķ
          Category 1 (size)    : PKZIP best, then ARJ,   then ZIP 
          Category 2 (speed)   : PKZIP best, then ARJ,   then ZIP 
          Category 3 (abs size): HAP   best, then PKZIP, then SQZ 
          Category 4 (extract) : PKZIP best, then ARJ,   then SQZ 
         Ľ



   ---- TEST SET  4 -----------------------------------------------------

   Files that came with the ARJ 2.30 self-extracting archive, ARJ230.EXE.

    arj.doc         131,116 bytes
    arj.exe         104,614 bytes
    arjback.bat         137 bytes
    arjrest.bat         163 bytes
    arjsort.bat       3,311 bytes
    arjsort.com       6,499 bytes
    arjsort.doc       3,145 bytes
    arjupdat.bat        145 bytes
    arj_bbs.doc       3,722 bytes
    credit.crd        3,251 bytes
    license.doc      14,729 bytes
    orderfrm.doc      5,021 bytes
    readme.doc        2,440 bytes
    rearj.cfg           439 bytes
    rearj.doc        19,815 bytes
    rearj.exe        37,762 bytes
    rearjall.bat        344 bytes
    register.exe     12,492 bytes
    sysop.doc         1,329 bytes
    technote.doc      4,764 bytes
    update.doc       22,783 bytes
    whatsnew.doc     10,719 bytes
    why_arj.doc       5,769 bytes
                    -------
                    394,509 total bytes in 23 files

            DCCMP run as: "DCCMP -3 -ts -otest4.rsl archive test4 f:\test4\*.* f:\temp *.*"
   Batch ARCHIVE was run:       3 times...
Memory free for programs:     517 K
            Time per run: 0:10:27
      Total time elapsed: 0:31:23


Compression, sorted by: Speed

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
PKZIP     2.04g  -a -es              101  000: 5.5    205750      1.00
PKZIP     2.04g  -a -ef              136  000: 7.5    191047      1.35
ARJ       2.39f   a -m4              165  000: 9.1    210368      1.63
PKZIP     2.04g  -a -en              184  000:10.1    185718      1.82
ARJ       2.39f   a -m3              208  000:11.4    191698      2.06
ZIP       1.9    -1                  238  000:13.1    189787      2.35
PKZIP     2.04g  -a -ex              258  000:14.2    184524      2.55
ZIP       1.9    -3                  261  000:14.3    187154      2.58
SQZ       1.08.3e a -q9              291  000:16.0    190488      2.88
ZIP       1.9    -6                  295  000:16.2    185830      2.91
ARJ       2.39f   a -jm              299  000:16.4    185236      2.96
ARJ       2.39f   a -jm1             302  000:16.6    185235      2.98
HYPER     2.5    -a                  316  000:17.4    198495      3.12
ARJ       2.39f   a -m1              318  000:17.5    185308      3.14
SQZ       1.08.3e a -q6              321  000:17.6    184772      3.17
ZIP       1.9    -9                  322  000:17.7    185709      3.18
LHA       2.52    a -n               334  000:18.4    190668      3.30
SQZ       1.08.3e a -m1              403  000:22.1    184424      3.98
SQZ       1.08.3e a -q3              457  000:25.1    183571      4.51
SQZ       1.08.3e a -q0              462  000:25.4    183490      4.57
HAP3      3.00    a                 1439  001:19.1    176783     14.20

  >> Here, two versions of PKZIP are not only faster than the fastest version
     of ARJ, but also beat it significantly in size.

  >> PKZIP is the first to reach the 205000 level, the first to reach the
     191000 level, the first to reach the 185000 level and the first  to reach
     the 184000 level!

  >> Notice that neither ARJ nor ZIP can beat PKZIP:ex in compression, even if
     they take longer.

  >> But, if you're willing to wait almost twice as long, then SQZ:q0 will save
     you 1000 bytes over PKZIP:ex.

  >> And, if you're willing to wait eight times longer than PKZIP:en, then HAP
     will save you 9000 bytes.  This is a significant savings, but eight times
     longer?!  And de-compression will be 36 times longer!!!

  >> Forget HYPER and LHA.


Compression, sorted by: Size

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
HAP3      3.00    a                 1439  001:19.1    176783      1.00
SQZ       1.08.3e a -q0              462  000:25.4    183490      1.04
SQZ       1.08.3e a -q3              457  000:25.1    183571      1.04
SQZ       1.08.3e a -m1              403  000:22.1    184424      1.04
PKZIP     2.04g  -a -ex              258  000:14.2    184524      1.04
SQZ       1.08.3e a -q6              321  000:17.6    184772      1.05
ARJ       2.39f   a -jm1             302  000:16.6    185235      1.05
ARJ       2.39f   a -jm              299  000:16.4    185236      1.05
ARJ       2.39f   a -m1              318  000:17.5    185308      1.05
ZIP       1.9    -9                  322  000:17.7    185709      1.05
PKZIP     2.04g  -a -en              184  000:10.1    185718      1.05
ZIP       1.9    -6                  295  000:16.2    185830      1.05
ZIP       1.9    -3                  261  000:14.3    187154      1.06
ZIP       1.9    -1                  238  000:13.1    189787      1.07
SQZ       1.08.3e a -q9              291  000:16.0    190488      1.08
LHA       2.52    a -n               334  000:18.4    190668      1.08
PKZIP     2.04g  -a -ef              136  000: 7.5    191047      1.08
ARJ       2.39f   a -m3              208  000:11.4    191698      1.08
HYPER     2.5    -a                  316  000:17.4    198495      1.12
PKZIP     2.04g  -a -es              101  000: 5.5    205750      1.16
ARJ       2.39f   a -m4              165  000: 9.1    210368      1.19 


Extraction, sorted by: Speed

Program   Description             Ticks   Min:Secs  Relative
========  ======================  ======  ========  ========
PKUNZIP   2.04g  -e (-en)             47  000: 2.6      1.00
PKUNZIP   2.04g  -e (-ex)             48  000: 2.6      1.03
PKUNZIP   2.04g  -e (-ef)             65  000: 3.6      1.40
PKUNZIP   2.04g  -e (-es)             77  000: 4.2      1.64
LHA       2.52    e -n               102  000: 5.6      2.17
SQZ       1.08.3e e (-m1)            104  000: 5.7      2.22
SQZ       1.08.3e e (-q6)            104  000: 5.7      2.23
SQZ       1.08.3e e (-q0)            106  000: 5.8      2.26
SQZ       1.08.3e e (-q9)            109  000: 6.0      2.32
ARJ       2.39f   e (-jm)            109  000: 6.0      2.33
SQZ       1.08.3e e (-q3)            110  000: 6.0      2.35
ARJ       2.39f   e (-m1)            113  000: 6.2      2.41
ARJ       2.39f   e (-m3)            114  000: 6.3      2.43
ARJ       2.39f   e (-jm1)           114  000: 6.3      2.43
ARJ       2.39f   e (-m4)            124  000: 6.8      2.65
UNZIP     5.00   -j (-6)             188  000:10.3      4.00
UNZIP     5.00   -j (-3)             190  000:10.4      4.06
UNZIP     5.00   -j (-9)             199  000:10.9      4.25
UNZIP     5.00   -j (-1)             212  000:11.6      4.52
HYPER     2.5    -x                  272  000:14.9      5.79
PAH3      3.00    e                 1717  001:34.3     36.54

  >> Again, PKUNZIP is twice as fast extracting as ARJ, four times faster than
     UNZIP, and 36 times faster than PAH!  And PAH is slower than HAP.


                             ķ
                               Winners Set  4  
         ķ
          Category 1 (size)    : PKZIP best, then ARJ, then SQZ   
          Category 2 (speed)   : PKZIP best, then ARJ, then ZIP   
          Category 3 (abs size): HAP   best, then SQZ, then PKZIP 
          Category 4 (extract) : PKZIP best, then SQZ, then ARJ   
         Ľ



   ---- TEST SET  5 -----------------------------------------------------

   Files that came with the ZIP 2.04g self-extracting archive, PKZ204g.EXE.

    addendum.doc     19,361 bytes
    authveri.frm      2,330 bytes
    hints.txt        14,109 bytes
    license.doc       3,707 bytes
    manual.doc      202,252 bytes
    ombudsmn.asp        591 bytes
    order.doc         3,304 bytes
    pkunzip.exe      29,378 bytes
    pkunzjr.com       2,750 bytes
    pkzip.exe        42,166 bytes
    pkzipfix.exe      7,687 bytes
    readme.doc          741 bytes
    sharewar.doc        573 bytes
    v204g.new        10,704 bytes
    whatsnew.204      2,430 bytes
    zip2exe.exe      27,319 bytes
                    -------
                    369,402 total bytes in 16 files


            DCCMP run as: "DCCMP -3 -ts -otest5.rsl archive test5 f:\test5\*.* f:\temp *.*"
   Batch ARCHIVE was run:       3 times...
Memory free for programs:     517 K
            Time per run: 0:08:56
      Total time elapsed: 0:26:50


Compression, sorted by: Speed

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
PKZIP     2.04g  -a -es               85  000: 4.7    202258      1.00
PKZIP     2.04g  -a -ef              139  000: 7.6    192176      1.63
ARJ       2.39f   a -m4              151  000: 8.3    204075      1.77
PKZIP     2.04g  -a -en              173  000: 9.5    187603      2.03
ARJ       2.39f   a -m3              183  000:10.1    192558      2.14
PKZIP     2.04g  -a -ex              232  000:12.7    186710      2.72
ZIP       1.9    -1                  232  000:12.7    190853      2.73
ZIP       1.9    -3                  233  000:12.8    188380      2.73
SQZ       1.08.3e a -q9              267  000:14.7    192453      3.13
ARJ       2.39f   a -jm1             286  000:15.7    187311      3.35
ARJ       2.39f   a -m1              286  000:15.7    187352      3.36
ZIP       1.9    -6                  293  000:16.1    186655      3.44
HYPER     2.5    -a                  302  000:16.6    197280      3.54
LHA       2.52    a -n               306  000:16.8    191378      3.59
ARJ       2.39f   a -jm              309  000:17.0    187238      3.63
SQZ       1.08.3e a -q6              312  000:17.1    187164      3.66
ZIP       1.9    -9                  358  000:19.7    186430      4.20
SQZ       1.08.3e a -m1              383  000:21.0    186397      4.49
SQZ       1.08.3e a -q3              410  000:22.5    185635      4.81
SQZ       1.08.3e a -q0              509  000:28.0    185511      5.96
HAP3      3.00    a                 1563  001:25.9    177294     18.32

  >> Again, all four versions of PKZIP are the fastest to reach the levels
     of compression that they reach.

  >> This time three archivers out-do PKZIP in absolute size, but ARJ is
     not one of them, ZIP does so by less than 300 bytes, and SQZ takes more
     than twice as long to save just 1200 bytes.

  >> Again, HAP gets 9000 bytes better compression than PKZIP:ex, but takes
     six times as long and still suffers from terrible de-compression speed.

  >> Again, you can forget about HYPER and LHA.


Compression, sorted by: Size

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
HAP3      3.00    a                 1563  001:25.9    177294      1.00
SQZ       1.08.3e a -q0              509  000:28.0    185511      1.05
SQZ       1.08.3e a -q3              410  000:22.5    185635      1.05
SQZ       1.08.3e a -m1              383  000:21.0    186397      1.05
ZIP       1.9    -9                  358  000:19.7    186430      1.05
ZIP       1.9    -6                  293  000:16.1    186655      1.05
PKZIP     2.04g  -a -ex              232  000:12.7    186710      1.05
SQZ       1.08.3e a -q6              312  000:17.1    187164      1.06
ARJ       2.39f   a -jm              309  000:17.0    187238      1.06
ARJ       2.39f   a -jm1             286  000:15.7    187311      1.06
ARJ       2.39f   a -m1              286  000:15.7    187352      1.06
PKZIP     2.04g  -a -en              173  000: 9.5    187603      1.06
ZIP       1.9    -3                  233  000:12.8    188380      1.06
ZIP       1.9    -1                  232  000:12.7    190853      1.08
LHA       2.52    a -n               306  000:16.8    191378      1.08
PKZIP     2.04g  -a -ef              139  000: 7.6    192176      1.08
SQZ       1.08.3e a -q9              267  000:14.7    192453      1.09
ARJ       2.39f   a -m3              183  000:10.1    192558      1.09
HYPER     2.5    -a                  302  000:16.6    197280      1.11
PKZIP     2.04g  -a -es               85  000: 4.7    202258      1.14
ARJ       2.39f   a -m4              151  000: 8.3    204075      1.15


Extraction, sorted by: Speed

Program   Description             Ticks   Min:Secs  Relative
========  ======================  ======  ========  ========
PKUNZIP   2.04g  -e (-en)             40  000: 2.2      1.00
PKUNZIP   2.04g  -e (-ef)             42  000: 2.3      1.05
PKUNZIP   2.04g  -e (-ex)             45  000: 2.5      1.11
PKUNZIP   2.04g  -e (-es)             57  000: 3.1      1.40
LHA       2.52    e -n                75  000: 4.1      1.85
SQZ       1.08.3e e (-m1)             93  000: 5.1      2.29
ARJ       2.39f   e (-m4)             94  000: 5.2      2.31
ARJ       2.39f   e (-jm1)            94  000: 5.2      2.33
SQZ       1.08.3e e (-q3)             94  000: 5.2      2.33
SQZ       1.08.3e e (-q6)             95  000: 5.2      2.35
SQZ       1.08.3e e (-q0)             96  000: 5.3      2.36
ARJ       2.39f   e (-jm)             96  000: 5.3      2.38
ARJ       2.39f   e (-m1)             97  000: 5.3      2.39
ARJ       2.39f   e (-m3)             98  000: 5.4      2.41
SQZ       1.08.3e e (-q9)             99  000: 5.4      2.45
HYPER     2.5    -x                  128  000: 7.0      3.15
UNZIP     5.00   -j (-9)             161  000: 8.8      3.98
UNZIP     5.00   -j (-6)             166  000: 9.1      4.09
UNZIP     5.00   -j (-3)             175  000: 9.6      4.31
UNZIP     5.00   -j (-1)             205  000:11.3      5.06
PAH3      3.00    e                  624  000:34.3     15.34

  >> This time PAH takes less than half the time to de-compress as HAP took
     to compress.  What's the deal?

                             ķ
                               Winners Set  5  
         ķ
          Category 1 (size)    : PKZIP best, then ZIP, then SQZ   
          Category 2 (speed)   : PKZIP best, then ARJ, then ZIP   
          Category 3 (abs size): HAP   best, then SQZ, then ZIP   
          Category 4 (extract) : PKZIP best, then SQZ, then ARJ   
         Ľ



   ---- TEST SET  6 -----------------------------------------------------

   Plain ASCII text files.  They are captured discussions of the PK/SEA
     debate from the message base on Magpie BBS.

    magpie           48,000 bytes
    magpie2          55,040 bytes
    magpie3          50,944 bytes
    magpie4          52,864 bytes
    magpie5         120,576 bytes
    magpie6          15,488 bytes
    reply.txt        31,104 bytes
                    -------
                    374,016 total bytes in 7 files


            DCCMP run as: "DCCMP -3 -ts -otest6.rsl archive test6 f:\test6\*.* f:\temp *.*"
   Batch ARCHIVE was run:       3 times...
Memory free for programs:     517 K
            Time per run: 0:07:05
      Total time elapsed: 0:21:16


Compression, sorted by: Speed

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
PKZIP     2.04g  -a -es               65  000: 3.6    153115      1.00
PKZIP     2.04g  -a -ef              107  000: 5.9    138362      1.66
ARJ       2.39f   a -m4              122  000: 6.7    154303      1.89
ARJ       2.39f   a -m3              142  000: 7.8    138231      2.18
PKZIP     2.04g  -a -en              167  000: 9.2    130889      2.58
ZIP       1.9    -1                  190  000:10.4    135739      2.92
ZIP       1.9    -3                  208  000:11.4    131711      3.21
PKZIP     2.04g  -a -ex              226  000:12.4    130007      3.49
HYPER     2.5    -a                  236  000:13.0    140852      3.64
SQZ       1.08.3e a -q9              244  000:13.4    139090      3.76
ZIP       1.9    -6                  249  000:13.7    129948      3.84
ARJ       2.39f   a -m1              261  000:14.3    131146      4.02
ARJ       2.39f   a -jm1             271  000:14.9    131127      4.17
ARJ       2.39f   a -jm              277  000:15.2    131118      4.26
ZIP       1.9    -9                  278  000:15.3    129903      4.28
LHA       2.52    a -n               323  000:17.7    138639      4.98
SQZ       1.08.3e a -q6              326  000:17.9    130770      5.02
SQZ       1.08.3e a -m1              400  000:22.0    130120      6.16
SQZ       1.08.3e a -q3              427  000:23.5    129360      6.57
SQZ       1.08.3e a -q0              477  000:26.2    129312      7.34
HAP3      3.00    a                  707  000:38.8    109167     10.88

  >> Again, look at how fast PKZIP reaches the levels of compression that it
     does compared to the other archivers.

  >> If you throw out the two faster versions of ARJ that don't get that great
     of compression, then you'll see that ZIP performs better than ARJ.

  >> Again, we have three archivers that out-do PKZIP in absolute compression
     size.  And again, ARJ is not one of them, ZIP barely does better, and SQZ
     takes more than twice as long to get just 700 bytes better compression.

  >> But this time, HAP gets more than 20000 bytes better compression.  That's
     20% better, and four times better than HAP did over the other archivers
     in the last two test sets.

  >> And HAP took only about three times as long as PKZIP:ex this time.  This
     shows that when HAP is compressing the best in terms of size, then it is
     also at its best in terms of speed, which makes sense.

  >> This test set also shows that HAP is very good at English text, and
     conversely, that HAP is poor with binary files.  If, HAP analyzed the data
     before compressing it, and then applied PKZIP's algorithm on binary files,
     and its own algorithm in ASCII text, then HAP would likely compress not only
     smaller, but faster (since only the text files would be slow).

  >> Again, we can forget about HYPER and LHA.


Compression, sorted by: Size

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
HAP3      3.00    a                  707  000:38.8    109167      1.00
SQZ       1.08.3e a -q0              477  000:26.2    129312      1.18
SQZ       1.08.3e a -q3              427  000:23.5    129360      1.18
ZIP       1.9    -9                  278  000:15.3    129903      1.19
ZIP       1.9    -6                  249  000:13.7    129948      1.19
PKZIP     2.04g  -a -ex              226  000:12.4    130007      1.19
SQZ       1.08.3e a -m1              400  000:22.0    130120      1.19
SQZ       1.08.3e a -q6              326  000:17.9    130770      1.20
PKZIP     2.04g  -a -en              167  000: 9.2    130889      1.20
ARJ       2.39f   a -jm              277  000:15.2    131118      1.20
ARJ       2.39f   a -jm1             271  000:14.9    131127      1.20
ARJ       2.39f   a -m1              261  000:14.3    131146      1.20
ZIP       1.9    -3                  208  000:11.4    131711      1.21
ZIP       1.9    -1                  190  000:10.4    135739      1.24
ARJ       2.39f   a -m3              142  000: 7.8    138231      1.27
PKZIP     2.04g  -a -ef              107  000: 5.9    138362      1.27
LHA       2.52    a -n               323  000:17.7    138639      1.27
SQZ       1.08.3e a -q9              244  000:13.4    139090      1.27
HYPER     2.5    -a                  236  000:13.0    140852      1.29
PKZIP     2.04g  -a -es               65  000: 3.6    153115      1.40
ARJ       2.39f   a -m4              122  000: 6.7    154303      1.41


Extraction, sorted by: Speed

Program   Description             Ticks   Min:Secs  Relative
========  ======================  ======  ========  ========
UNZIP     5.00   -j (-6)              17  000: 0.9      1.00
UNZIP     5.00   -j (-9)              17  000: 0.9      1.02
UNZIP     5.00   -j (-3)              17  000: 0.9      1.02
UNZIP     5.00   -j (-1)              31  000: 1.7      1.79
PKUNZIP   2.04g  -e (-ef)             33  000: 1.8      1.92
PKUNZIP   2.04g  -e (-en)             33  000: 1.8      1.94
PKUNZIP   2.04g  -e (-ex)             35  000: 1.9      2.06
PKUNZIP   2.04g  -e (-es)             48  000: 2.6      2.79
LHA       2.52    e -n                56  000: 3.1      3.27
ARJ       2.39f   e (-m1)             68  000: 3.7      3.94
ARJ       2.39f   e (-jm)             69  000: 3.8      4.00
ARJ       2.39f   e (-jm1)            70  000: 3.8      4.08
SQZ       1.08.3e e (-q0)             70  000: 3.8      4.08
SQZ       1.08.3e e (-q3)             71  000: 3.9      4.12
ARJ       2.39f   e (-m3)             71  000: 3.9      4.13
SQZ       1.08.3e e (-q6)             72  000: 4.0      4.15
SQZ       1.08.3e e (-q9)             75  000: 4.1      4.37
SQZ       1.08.3e e (-m1)             77  000: 4.2      4.48
ARJ       2.39f   e (-m4)             83  000: 4.6      4.79
HYPER     2.5    -x                  163  000: 9.0      9.40
PAH3      3.00    e                  798  000:43.8     46.06

  >> Look at this!  UNZIP which was previously 4 or 5 times slower than
     PKUNZIP, is now about twice as fast.  The main difference with this
     test set is that the matched strings would be considerably longer
     than in the other test sets (ie, the test set is more compressible).

                             ķ
                               Winners Set  6  
         ķ
          Category 1 (size)    : PKZIP best, then ZIP,   then ARJ 
          Category 2 (speed)   : PKZIP best, then ARJ,   then ZIP 
          Category 3 (abs size): HAP   best, then SQZ,   then ZIP 
          Category 4 (extract) : ZIP   best, then PKZIP, then ARJ 
         Ľ



   ---- TEST SET  7 -----------------------------------------------------

   These are files from some version of DOS with all files over 9999 bytes
     removed.

    mortgage.bas      6,251 bytes
    assign.com        1,561 bytes
    basic.com         1,063 bytes
    chkdsk.com        9,850 bytes
    comp.com          4,214 bytes
    diskcomp.com      5,879 bytes
    diskcopy.com      6,295 bytes
    diskpark.com      2,790 bytes
    edlin.com         7,526 bytes
    graftabl.com      6,128 bytes
    graphics.com      3,300 bytes
    keyb.com          9,056 bytes
    label.com         2,377 bytes
    more.com            313 bytes
    print.com         9,026 bytes
    recover.com       4,299 bytes
    select.com        4,163 bytes
    sys.com           4,766 bytes
    tree.com          3,571 bytes
    5202.cpi            459 bytes
    append.exe        5,825 bytes
    attrib.exe        9,529 bytes
    fastopen.exe      3,919 bytes
    find.exe          6,434 bytes
    join.exe          8,969 bytes
    nlsfunc.exe       3,060 bytes
    share.exe         8,608 bytes
    sort.exe          1,977 bytes
    subst.exe         9,909 bytes
    basic.pif           369 bytes
    basica.pif          369 bytes
    diskpark.ref      2,304 bytes
    ansi.sys          1,678 bytes
    driver.sys        1,196 bytes
    vdisk.sys         3,455 bytes
                    -------
                    160,488 total bytes in 35 files


            DCCMP run as: "DCCMP -3 -ts -otest7.rsl archive test7 f:\test7\*.* f:\temp *.*"
   Batch ARCHIVE was run:       3 times...
Memory free for programs:     517 K
            Time per run: 0:05:52
      Total time elapsed: 0:17:38


Compression, sorted by: Speed

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
PKZIP     2.04g  -a -es               62  000: 3.4     93964      1.00
PKZIP     2.04g  -a -ef               80  000: 4.4     90523      1.28
PKZIP     2.04g  -a -en               81  000: 4.5     90310      1.31
PKZIP     2.04g  -a -ex               93  000: 5.1     90310      1.50
ARJ       2.39f   a -m4              101  000: 5.5     98895      1.63
SQZ       1.08.3e a -q9              133  000: 7.3     88351      2.13
LHA       2.52    a -n               135  000: 7.4     88238      2.17
ZIP       1.9    -1                  142  000: 7.8     90941      2.29
ZIP       1.9    -3                  143  000: 7.9     90751      2.30
ARJ       2.39f   a -m3              144  000: 7.9     89627      2.32
SQZ       1.08.3e a -q6              147  000: 8.1     88116      2.36
ARJ       2.39f   a -jm1             148  000: 8.1     89043      2.38
ZIP       1.9    -6                  148  000: 8.1     90647      2.38
ARJ       2.39f   a -jm              152  000: 8.4     89037      2.44
ZIP       1.9    -9                  155  000: 8.5     90634      2.50
HYPER     2.5    -a                  160  000: 8.8     91300      2.57
SQZ       1.08.3e a -q3              162  000: 8.9     88107      2.60
ARJ       2.39f   a -m1              173  000: 9.5     89024      2.78
SQZ       1.08.3e a -m1              179  000: 9.8     88229      2.88
SQZ       1.08.3e a -q0              189  000:10.4     88114      3.04
HAP3      3.00    a                  825  000:45.3     87192     13.24

  >> With this set of small binary files, we have a different set of winners.
     However, the differences in size between 1st, 2nd, and 3rd place winners
     are often very small.

  >> Notice that all four levels of PKZIP are faster than any other archiver.
     That means that even the SLOWEST level of PKZIP (PKZIP:ex) is faster than
     the FASTEST level  of any other archiver.

  >> Even so, PKZIP can't manage to get down to the 88000 byte level that both
     SQZ and LHA do.  And it can't get down to the 89000 byte level that ARJ
     does.  At least you can say that LHA has an advantage in that it uses
     small file headers, but ARJ does not have this advantage and still beats
     PKZIP.   (Remember that the larger file headers allow for more integrity
     and features).

  >> Finally, LHA wins in a Category (the size Category), although just barely
     over SQZ.  LHA compresses a little faster, SQZ compresses a tiny bit
     better.

  >> While LHA and SQZ are very close to each other, ARJ is definitely behind
     them for third place.

  >> Notice how poorly ARJ:m4 performs.  Is this the price you want to pay for
     speed?  And remember that the slowest level of PKZIP was still faster than
     this "fast" level of ARJ.

  >> HYPER remains unremarkable.

  >> And if want to wait seven times longer than LHA, then HAP will save you
     1000 bytes, but require you to wait 26 times longer than PKUNZIP to
     extract.


Compression, sorted by: Size

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
HAP3      3.00    a                  825  000:45.3     87192      1.00
SQZ       1.08.3e a -q3              162  000: 8.9     88107      1.01
SQZ       1.08.3e a -q0              189  000:10.4     88114      1.01
SQZ       1.08.3e a -q6              147  000: 8.1     88116      1.01
SQZ       1.08.3e a -m1              179  000: 9.8     88229      1.01
LHA       2.52    a -n               135  000: 7.4     88238      1.01
SQZ       1.08.3e a -q9              133  000: 7.3     88351      1.01
ARJ       2.39f   a -m1              173  000: 9.5     89024      1.02
ARJ       2.39f   a -jm              152  000: 8.4     89037      1.02
ARJ       2.39f   a -jm1             148  000: 8.1     89043      1.02
ARJ       2.39f   a -m3              144  000: 7.9     89627      1.03
PKZIP     2.04g  -a -en               81  000: 4.5     90310      1.04
PKZIP     2.04g  -a -ex               93  000: 5.1     90310      1.04
PKZIP     2.04g  -a -ef               80  000: 4.4     90523      1.04
ZIP       1.9    -9                  155  000: 8.5     90634      1.04
ZIP       1.9    -6                  148  000: 8.1     90647      1.04
ZIP       1.9    -3                  143  000: 7.9     90751      1.04
ZIP       1.9    -1                  142  000: 7.8     90941      1.04
HYPER     2.5    -a                  160  000: 8.8     91300      1.05
PKZIP     2.04g  -a -es               62  000: 3.4     93964      1.08
ARJ       2.39f   a -m4              101  000: 5.5     98895      1.13


Extraction, sorted by: Speed

Program   Description             Ticks   Min:Secs  Relative
========  ======================  ======  ========  ========
PKUNZIP   2.04g  -e (-es)             39  000: 2.1      1.00
PKUNZIP   2.04g  -e (-en)             39  000: 2.1      1.00
PKUNZIP   2.04g  -e (-ef)             40  000: 2.2      1.01
PKUNZIP   2.04g  -e (-ex)             42  000: 2.3      1.06
LHA       2.52    e -n                60  000: 3.3      1.52
SQZ       1.08.3e e (-q3)             73  000: 4.0      1.84
SQZ       1.08.3e e (-q9)             73  000: 4.0      1.85
SQZ       1.08.3e e (-m1)             73  000: 4.0      1.86
SQZ       1.08.3e e (-q0)             74  000: 4.1      1.87
SQZ       1.08.3e e (-q6)             74  000: 4.1      1.87
ARJ       2.39f   e (-jm)            102  000: 5.6      2.59
ARJ       2.39f   e (-m3)            104  000: 5.7      2.62
ARJ       2.39f   e (-jm1)           104  000: 5.7      2.62
UNZIP     5.00   -j (-3)             104  000: 5.7      2.64
ARJ       2.39f   e (-m4)            106  000: 5.8      2.67
UNZIP     5.00   -j (-6)             107  000: 5.9      2.71
UNZIP     5.00   -j (-9)             108  000: 5.9      2.74
ARJ       2.39f   e (-m1)            111  000: 6.1      2.81
UNZIP     5.00   -j (-1)             126  000: 6.9      3.18
HYPER     2.5    -x                  133  000: 7.3      3.35
PAH3      3.00    e                 1067  000:58.6     26.90

  >> This time UNZIPis about as fast extracting as ARJ is.

  >> But, of course, PKUNZIP is the clear winner at extraction.

                             ķ
                               Winners Set  7  
         ķ
          Category 1 (size)    : LHA   best, then SQZ, then ARJ   
          Category 2 (speed)   : PKZIP best, then SQZ, then LHA   
          Category 3 (abs size): HAP   best, then SQZ, then LHA   
          Category 4 (extract) : PKZIP best, then LHA, then SQZ   
         Ľ



   ---- TEST SET  8 -----------------------------------------------------

   C and assembler source files from Small Windows (a text mode windowing
     library).  All files are less than 10,000 bytes.

    files.c           6,780 bytes
    itoab.c             598 bytes
    itou.c              567 bytes
    ltou.c              709 bytes
    menu.c            8,422 bytes
    msort.c           2,076 bytes
    poll.c              512 bytes
    swtest.c          9,728 bytes
    utoi.c              398 bytes
    vmode.c             792 bytes
    vpoint.c            761 bytes
    watt.c              556 bytes
    wauto.c             736 bytes
    wchr.c              550 bytes
    wchra.c             590 bytes
    wclean.c            448 bytes
    wframe.c          1,574 bytes
    wgetc.c             640 bytes
    wgetf.c           4,072 bytes
    wgets.c           1,376 bytes
    whorlin.c           768 bytes
    wkernel.c         9,472 bytes
    wmove.c           1,295 bytes
    wprintf.c         2,176 bytes
    wprintfa.c        2,593 bytes
    wpush.c             965 bytes
    wputc.c             672 bytes
    wputca.c            741 bytes
    wputs.c             243 bytes
    wputsa.c            348 bytes
    wreada.c            640 bytes
    wscanf.c          2,766 bytes
    wscroll.c         2,197 bytes
    wstr.c              567 bytes
    wstra.c             592 bytes
    wverlin.c           768 bytes
    window.h          1,242 bytes
    files2.asm        7,168 bytes
    getkey.asm        1,280 bytes
    hitkey.asm        1,024 bytes
    pad.asm           1,280 bytes
    vatt.asm          2,688 bytes
    vchr.asm          2,688 bytes
    vchra.asm         2,944 bytes
    vcursor.asm       1,280 bytes
    vdrop.asm         1,664 bytes
    vgoto.asm         1,280 bytes
    visat.asm         1,152 bytes
    vlift.asm         1,664 bytes
    vmode2.asm        1,408 bytes
    vpage.asm         1,280 bytes
    vpoint2.asm         768 bytes
    vreada.asm        2,432 bytes
    vshow.asm         3,328 bytes
    vstow.asm         3,200 bytes
    vstr.asm          3,840 bytes
    vstra.asm         4,224 bytes
                    -------
                    116,522 total bytes in 57 files

            DCCMP run as: "DCCMP -3 -ts -otest8.rsl archive test8 f:\test8\*.* f:\temp *.*"
   Batch ARCHIVE was run:       3 times...
Memory free for programs:     517 K
            Time per run: 0:04:59
      Total time elapsed: 0:14:58


Compression, sorted by: Speed

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
PKZIP     2.04g  -a -es               61  000: 3.4     45524      1.00
PKZIP     2.04g  -a -ef               67  000: 3.7     42473      1.10
PKZIP     2.04g  -a -en               69  000: 3.8     42007      1.14
PKZIP     2.04g  -a -ex               76  000: 4.2     41904      1.25
ARJ       2.39f   a -m4              115  000: 6.3     45932      1.89
SQZ       1.08.3e a -q9              120  000: 6.6     39409      1.98
ZIP       1.9    -1                  122  000: 6.7     43348      2.00
ZIP       1.9    -3                  124  000: 6.8     42919      2.04
LHA       2.52    a -n               127  000: 7.0     38689      2.09
SQZ       1.08.3e a -q6              128  000: 7.0     38669      2.10
ZIP       1.9    -6                  131  000: 7.2     42604      2.16
ARJ       2.39f   a -m3              133  000: 7.3     41025      2.19
HYPER     2.5    -a                  135  000: 7.4     40977      2.22
ZIP       1.9    -9                  139  000: 7.6     42548      2.29
ARJ       2.39f   a -jm1             148  000: 8.1     39952      2.43
SQZ       1.08.3e a -q3              150  000: 8.2     38468      2.46
ARJ       2.39f   a -jm              152  000: 8.4     39923      2.50
SQZ       1.08.3e a -m1              168  000: 9.2     38714      2.75
SQZ       1.08.3e a -q0              176  000: 9.7     38438      2.89
ARJ       2.39f   a -m1              227  000:12.5     39968      3.72
HAP3      3.00    a                  432  000:23.7     37720      7.09

  >> This time the test set a bunch of small ASCII files, but the outcome is
     basically the same as the last test set (the set of small binary files).

  >> This time SQZ is slightly better than LHA.  Why not just say they are
     equal on small files?  (Unless, of course, one is only counting absolute
     file sizes.)

  >> Again, all four levels of PKZIP are faster than anything else.

  >> This time, the fastest level of ARJ does not do so poorly.

  >> And this time, HYPER gets better compression than PKZIP.  That's five
     archivers that get better compression than PKZIP!  Though they only save
     at best 3500 bytes (not including HAP), this is a significant percentage
     (about 9%).

  >> Notice that ZIP, that uses the same algorithm as PKZIP, is also poor in
     compression size.

  >> Again, HAP only compresses a little better though it take three times as
     long as LHA.


Compression, sorted by: Size

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
HAP3      3.00    a                  432  000:23.7     37720      1.00
SQZ       1.08.3e a -q0              176  000: 9.7     38438      1.02
SQZ       1.08.3e a -q3              150  000: 8.2     38468      1.02
SQZ       1.08.3e a -q6              128  000: 7.0     38669      1.03
LHA       2.52    a -n               127  000: 7.0     38689      1.03
SQZ       1.08.3e a -m1              168  000: 9.2     38714      1.03
SQZ       1.08.3e a -q9              120  000: 6.6     39409      1.04
ARJ       2.39f   a -jm              152  000: 8.4     39923      1.06
ARJ       2.39f   a -jm1             148  000: 8.1     39952      1.06
ARJ       2.39f   a -m1              227  000:12.5     39968      1.06
HYPER     2.5    -a                  135  000: 7.4     40977      1.09
ARJ       2.39f   a -m3              133  000: 7.3     41025      1.09
PKZIP     2.04g  -a -ex               76  000: 4.2     41904      1.11
PKZIP     2.04g  -a -en               69  000: 3.8     42007      1.11
PKZIP     2.04g  -a -ef               67  000: 3.7     42473      1.13
ZIP       1.9    -9                  139  000: 7.6     42548      1.13
ZIP       1.9    -6                  131  000: 7.2     42604      1.13
ZIP       1.9    -3                  124  000: 6.8     42919      1.14
ZIP       1.9    -1                  122  000: 6.7     43348      1.15
PKZIP     2.04g  -a -es               61  000: 3.4     45524      1.21
ARJ       2.39f   a -m4              115  000: 6.3     45932      1.22


Extraction, sorted by: Speed

Program   Description             Ticks   Min:Secs  Relative
========  ======================  ======  ========  ========
PKUNZIP   2.04g  -e (-ex)             51  000: 2.8      1.00
PKUNZIP   2.04g  -e (-es)             53  000: 2.9      1.05
PKUNZIP   2.04g  -e (-en)             56  000: 3.1      1.11
PKUNZIP   2.04g  -e (-ef)             59  000: 3.2      1.17
LHA       2.52    e -n                69  000: 3.8      1.36
SQZ       1.08.3e e (-q3)             77  000: 4.2      1.52
SQZ       1.08.3e e (-q0)             77  000: 4.2      1.52
SQZ       1.08.3e e (-m1)             78  000: 4.3      1.53
SQZ       1.08.3e e (-q9)             78  000: 4.3      1.54
SQZ       1.08.3e e (-q6)             79  000: 4.3      1.55
UNZIP     5.00   -j (-9)              86  000: 4.7      1.69
UNZIP     5.00   -j (-3)              90  000: 4.9      1.78
UNZIP     5.00   -j (-6)              92  000: 5.1      1.81
UNZIP     5.00   -j (-1)              96  000: 5.3      1.90
HYPER     2.5    -x                  103  000: 5.7      2.02
ARJ       2.39f   e (-m4)            125  000: 6.9      2.46
ARJ       2.39f   e (-m3)            128  000: 7.0      2.52
ARJ       2.39f   e (-jm)            128  000: 7.0      2.52
ARJ       2.39f   e (-jm1)           129  000: 7.1      2.54
ARJ       2.39f   e (-m1)            158  000: 8.7      3.10
PAH3      3.00    e                  489  000:26.9      9.59

  >> Here UNZIP decidedly beats ARJ in extraction.

                             ķ
                               Winners Set  8  
         ķ
          Category 1 (size)    : SQZ   best, then LHA, then ARJ   
          Category 2 (speed)   : PKZIP best, then SQZ, then LHA   
          Category 3 (abs size): HAP   best, then SQZ, then LHA   
          Category 4 (extract) : PKZIP best, then LHA, then SQZ   
         Ľ



   ---- TEST SET  9 -----------------------------------------------------

   King James translation of PSALMS.  Mostly ASCII, with binary codes
     between each verse.

    19o_psal.kj     228,638 bytes


            DCCMP run as: "DCCMP -3 -ts -otest9.rsl archive test9 f:\test9\*.* f:\temp *.*"
   Batch ARCHIVE was run:       3 times...
Memory free for programs:     517 K
            Time per run: 0:05:19
      Total time elapsed: 0:15:58


Compression, sorted by: Speed

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
PKZIP     2.04g  -a -es               46  000: 2.5     99318      1.00
ARJ       2.39f   a -m4               75  000: 4.1     97311      1.64
PKZIP     2.04g  -a -ef               82  000: 4.5     87021      1.80
ARJ       2.39f   a -m3               89  000: 4.9     86641      1.95
PKZIP     2.04g  -a -en              127  000: 7.0     79847      2.78
ZIP       1.9    -1                  130  000: 7.1     84160      2.83
ZIP       1.9    -3                  142  000: 7.8     81123      3.09
HYPER     2.5    -a                  148  000: 8.1     87013      3.22
SQZ       1.08.3e a -q9              158  000: 8.7     88414      3.45
ZIP       1.9    -6                  194  000:10.7     79103      4.22
LHA       2.52    a -n               209  000:11.5     86380      4.55
ARJ       2.39f   a -m1              209  000:11.5     80336      4.56
PKZIP     2.04g  -a -ex              222  000:12.2     78827      4.84
ARJ       2.39f   a -jm1             228  000:12.5     80167      4.96
SQZ       1.08.3e a -q6              231  000:12.7     80946      5.04
ARJ       2.39f   a -jm              240  000:13.2     80108      5.22
ZIP       1.9    -9                  250  000:13.7     78753      5.44
SQZ       1.08.3e a -m1              301  000:16.5     79945      6.54
SQZ       1.08.3e a -q3              362  000:19.9     78792      7.88
HAP3      3.00    a                  402  000:22.1     64993      8.75
SQZ       1.08.3e a -q0              452  000:24.8     78483      9.83

  >> This is the first test set that HAP wins Category 1 (best size with ok
     speed).  HAP takes 81% longer time than PKZIP:ex, but gets 21% better
     compression!  Of course, you'll have to wait 21 times longer than
     PKUNZIP to extract with PAH.

  >> Again, this shows that HAP's strength is in English text.  HAP probably
     does just as well in other languages, I just didn't have anything in
     other languages to test.  Please remember that you can use my DCCMP
     program to test out you own files.

  >> Here, PKZIP:es compresses 2000 bytes larger than ARJ:m4, but it does so
     in less than half the time.

  >> PKZIP:ef is about the same as ARJ:m3.  A little faster, but a little
     worse compression.

  >> After that, though, both PKZIP and ZIP out perform ARJ.

  >> And you can go back to forgetting about LHA and HYPER.


Compression, sorted by: Size

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
HAP3      3.00    a                  402  000:22.1     64993      1.00
SQZ       1.08.3e a -q0              452  000:24.8     78483      1.21
ZIP       1.9    -9                  250  000:13.7     78753      1.21
SQZ       1.08.3e a -q3              362  000:19.9     78792      1.21
PKZIP     2.04g  -a -ex              222  000:12.2     78827      1.21
ZIP       1.9    -6                  194  000:10.7     79103      1.22
PKZIP     2.04g  -a -en              127  000: 7.0     79847      1.23
SQZ       1.08.3e a -m1              301  000:16.5     79945      1.23
ARJ       2.39f   a -jm              240  000:13.2     80108      1.23
ARJ       2.39f   a -jm1             228  000:12.5     80167      1.23
ARJ       2.39f   a -m1              209  000:11.5     80336      1.24
SQZ       1.08.3e a -q6              231  000:12.7     80946      1.25
ZIP       1.9    -3                  142  000: 7.8     81123      1.25
ZIP       1.9    -1                  130  000: 7.1     84160      1.29
LHA       2.52    a -n               209  000:11.5     86380      1.33
ARJ       2.39f   a -m3               89  000: 4.9     86641      1.33
HYPER     2.5    -a                  148  000: 8.1     87013      1.34
PKZIP     2.04g  -a -ef               82  000: 4.5     87021      1.34
SQZ       1.08.3e a -q9              158  000: 8.7     88414      1.36
ARJ       2.39f   a -m4               75  000: 4.1     97311      1.50
PKZIP     2.04g  -a -es               46  000: 2.5     99318      1.53


Extraction, sorted by: Speed

Program   Description             Ticks   Min:Secs  Relative
========  ======================  ======  ========  ========
PKUNZIP   2.04g  -e (-en)             21  000: 1.2      1.00
PKUNZIP   2.04g  -e (-ef)             22  000: 1.2      1.05
PKUNZIP   2.04g  -e (-ex)             22  000: 1.2      1.05
PKUNZIP   2.04g  -e (-es)             28  000: 1.5      1.33
LHA       2.52    e -n                34  000: 1.9      1.61
ARJ       2.39f   e (-jm)             40  000: 2.2      1.88
ARJ       2.39f   e (-jm1)            40  000: 2.2      1.88
ARJ       2.39f   e (-m1)             40  000: 2.2      1.89
SQZ       1.08.3e e (-m1)             41  000: 2.3      1.95
SQZ       1.08.3e e (-q0)             42  000: 2.3      1.98
ARJ       2.39f   e (-m3)             42  000: 2.3      2.00
SQZ       1.08.3e e (-q3)             42  000: 2.3      2.00
SQZ       1.08.3e e (-q6)             44  000: 2.4      2.09
SQZ       1.08.3e e (-q9)             46  000: 2.5      2.19
ARJ       2.39f   e (-m4)             50  000: 2.7      2.38
UNZIP     5.00   -j (-6)              80  000: 4.4      3.78
UNZIP     5.00   -j (-9)              81  000: 4.5      3.81
UNZIP     5.00   -j (-3)              86  000: 4.7      4.03
HYPER     2.5    -x                   99  000: 5.4      4.64
UNZIP     5.00   -j (-1)             103  000: 5.7      4.83
PAH3      3.00    e                  457  000:25.1     21.45

  >> UNZIP is now back to its usual 4 times slower than PKUNZIP spot.

                             ķ
                               Winners Set  9  
         ķ
          Category 1 (size)    : HAP   best, then PKZIP, then ZIP 
          Category 2 (speed)   : PKZIP best, then ARJ,   then ZIP 
          Category 3 (abs size): HAP   best, then SQZ,   then ZIP 
          Category 4 (extract) : PKZIP best, then ARJ,   then SQZ 
         Ľ



   ---- TEST SET 10 -----------------------------------------------------

   Lotus 1-2-3 files.  These spreadsheets are from where I work.

    annulus1.wk1     24,876 bytes
    beamleaf.wk1     32,028 bytes
    exp.wk1          29,000 bytes
    motion1.wk1      93,230 bytes
    motion2.wk1     109,830 bytes
                    -------
                    288,964 total bytes in 5 files

            DCCMP run as: "DCCMP -3 -ts -otest10.rsl archive test10 f:\test10\*.* f:\temp *.*"
   Batch ARCHIVE was run:       3 times...
Memory free for programs:     517 K
            Time per run: 0:07:40
      Total time elapsed: 0:23:01


Compression, sorted by: Speed

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
PKZIP     2.04g  -a -es               40  000: 2.2     63900      1.00
PKZIP     2.04g  -a -ef               74  000: 4.1     63385      1.84
ARJ       2.39f   a -m4               80  000: 4.4     78277      2.00
ARJ       2.39f   a -m3               95  000: 5.2     64114      2.36
ZIP       1.9    -1                  127  000: 7.0     64912      3.15
ZIP       1.9    -3                  134  000: 7.4     61820      3.34
PKZIP     2.04g  -a -en              140  000: 7.7     61658      3.49
SQZ       1.08.3e a -q9              145  000: 8.0     63280      3.60
HYPER     2.5    -a                  152  000: 8.4     59309      3.79
LHA       2.52    a -n               184  000:10.1     63078      4.57
SQZ       1.08.3e a -q6              204  000:11.2     61548      5.07
ARJ       2.39f   a -m1              213  000:11.7     59759      5.29
PKZIP     2.04g  -a -ex              219  000:12.0     61136      5.43
ZIP       1.9    -6                  238  000:13.1     59969      5.91
ARJ       2.39f   a -jm1             252  000:13.8     59748      6.26
SQZ       1.08.3e a -m1              286  000:15.7     64196      7.09
ARJ       2.39f   a -jm              306  000:16.8     59743      7.59
SQZ       1.08.3e a -q3              548  000:30.1     63386     13.60
HAP3      3.00    a                  655  000:36.0     56849     16.26
ZIP       1.9    -9                  848  000:46.6     59904     21.02
SQZ       1.08.3e a -q0             1583  001:27.0     63372     39.25

  >> Finally HYPER wins Category 1 (best size with ok speed).

  >> This time HAP's compression speed is ok (read not terrible), but it only
     gets 4% better compression (instead of the 21% better as on the last
     test).

  >> This time the first two level of PKZIP get good compression quickly, but
     ZIP:3 equals PKZIP:en, and ARJ:m1 is both faster and better compressing
     than PKZIP:ex.  Not only that, but ARJ:m1 itself is beat by HYPER in both
     speed and size.

  >> Indeed, PKZIP:ex is beaten by four archivers, though none of them is SQZ.
     Of course, except for HAP, none of the archivers beat PKZIP by much (at
     most by 800 bytes).

  >> Notice how SQZ:q6 compresses 2000 bytes better than SQZ:q0.  And it does
     so in 1/8 of  the time.  Remember that level q0 is supposed to compress
     better than level q6 (the lower the number, the better the compression).
     As you must surely have seen by now, nothing with archivers is a sure
     thing.

  >> Indeed, in this test case, SQZ:q0 is 2 and a half times SLOWER than HAP!

  >> Even ZIP:9 is slower than HAP.

  >> Still, HYPER is only 2500 bytes larger than HAP while being 4 times
     faster (that's 11 times faster than SQZ:q0).


Compression, sorted by: Size

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
HAP3      3.00    a                  655  000:36.0     56849      1.00
HYPER     2.5    -a                  152  000: 8.4     59309      1.04
ARJ       2.39f   a -jm              306  000:16.8     59743      1.05
ARJ       2.39f   a -jm1             252  000:13.8     59748      1.05
ARJ       2.39f   a -m1              213  000:11.7     59759      1.05
ZIP       1.9    -9                  848  000:46.6     59904      1.05
ZIP       1.9    -6                  238  000:13.1     59969      1.05
PKZIP     2.04g  -a -ex              219  000:12.0     61136      1.08
SQZ       1.08.3e a -q6              204  000:11.2     61548      1.08
PKZIP     2.04g  -a -en              140  000: 7.7     61658      1.08
ZIP       1.9    -3                  134  000: 7.4     61820      1.09
LHA       2.52    a -n               184  000:10.1     63078      1.11
SQZ       1.08.3e a -q9              145  000: 8.0     63280      1.11
SQZ       1.08.3e a -q0             1583  001:27.0     63372      1.11
PKZIP     2.04g  -a -ef               74  000: 4.1     63385      1.11
SQZ       1.08.3e a -q3              548  000:30.1     63386      1.11
PKZIP     2.04g  -a -es               40  000: 2.2     63900      1.12
ARJ       2.39f   a -m3               95  000: 5.2     64114      1.13
SQZ       1.08.3e a -m1              286  000:15.7     64196      1.13
ZIP       1.9    -1                  127  000: 7.0     64912      1.14
ARJ       2.39f   a -m4               80  000: 4.4     78277      1.38


Extraction, sorted by: Speed

Program   Description             Ticks   Min:Secs  Relative
========  ======================  ======  ========  ========
PKUNZIP   2.04g  -e (-en)             23  000: 1.3      1.00
PKUNZIP   2.04g  -e (-es)             24  000: 1.3      1.01
PKUNZIP   2.04g  -e (-ef)             24  000: 1.3      1.03
PKUNZIP   2.04g  -e (-ex)             25  000: 1.4      1.06
LHA       2.52    e -n                32  000: 1.8      1.35
SQZ       1.08.3e e (-m1)             44  000: 2.4      1.87
SQZ       1.08.3e e (-q3)             45  000: 2.5      1.90
SQZ       1.08.3e e (-q0)             45  000: 2.5      1.90
SQZ       1.08.3e e (-q6)             45  000: 2.5      1.92
SQZ       1.08.3e e (-q9)             46  000: 2.5      1.94
ARJ       2.39f   e (-jm1)            48  000: 2.6      2.04
ARJ       2.39f   e (-jm)             48  000: 2.6      2.04
ARJ       2.39f   e (-m1)             48  000: 2.6      2.04
ARJ       2.39f   e (-m3)             49  000: 2.7      2.10
ARJ       2.39f   e (-m4)             54  000: 3.0      2.31
UNZIP     5.00   -j (-9)              77  000: 4.2      3.25
UNZIP     5.00   -j (-6)              79  000: 4.3      3.37
UNZIP     5.00   -j (-3)              86  000: 4.7      3.63
HYPER     2.5    -x                   87  000: 4.8      3.69
UNZIP     5.00   -j (-1)              98  000: 5.4      4.15
PAH3      3.00    e                  763  000:41.9     32.25

  >> Although HYPER may win once in compression, it loses in extraction by
     being 3 and half times slower than PKUNZIP.

  >> And again, PAH is 32 times slower than PKUNZIP.

                             ķ
                               Winners Set 10  
         ķ
          Category 1 (size)    : HYPER best, then ARJ,   then ZIP 
          Category 2 (speed)   : PKZIP best, then ZIP,   then ARJ 
          Category 3 (abs size): HAP   best, then HYPER, then ARJ 
          Category 4 (extract) : PKZIP best, then SQZ,   then ARJ 
         Ľ




   ---- TEST SET 11 -----------------------------------------------------

   Microsoft Visual C++ windows help file for the Microsoft Foundation
     Classes.

    mfc.hlp       2,222,523 bytes


            DCCMP run as: "DCCMP -3 -ts -otest11.rsl archive test11 f:\test11\*.* f:\temp *.*"
   Batch ARCHIVE was run:       3 times...
Memory free for programs:     517 K
            Time per run: 1:18:23
      Total time elapsed: 3:55:11


Compression, sorted by: Speed

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
PKZIP     2.04g  -a -es              730  000:40.1   1361988      1.00
ARJ       2.39f   a -m4              905  000:49.7   1552530      1.24
PKZIP     2.04g  -a -ef             1045  000:57.4   1324195      1.43
ARJ       2.39f   a -m3             1181  001: 4.9   1345337      1.62
PKZIP     2.04g  -a -en             1427  001:18.4   1253792      1.95
ZIP       1.9    -1                 1451  001:19.7   1257140      1.99
ZIP       1.9    -3                 1618  001:28.9   1247798      2.22
SQZ       1.08.3e a -q9             1751  001:36.2   1265875      2.40
ZIP       1.9    -6                 1941  001:46.6   1242726      2.66
SQZ       1.08.3e a -q6             2001  001:49.9   1245526      2.74
HYPER     2.5    -a                 2031  001:51.6   1442831      2.78
ARJ       2.39f   a -m1             2036  001:51.9   1261364      2.79
PKZIP     2.04g  -a -ex             2137  001:57.4   1237261      2.93
ARJ       2.39f   a -jm1            2307  002: 6.8   1259420      3.16
SQZ       1.08.3e a -m1             2318  002: 7.4   1244060      3.18
SQZ       1.08.3e a -q3             2746  002:30.9   1241057      3.76
ARJ       2.39f   a -jm             3533  003:14.1   1257307      4.84
ZIP       1.9    -9                 3746  003:25.8   1238308      5.13
SQZ       1.08.3e a -q0             6060  005:33.0   1236629      8.30
HAP3      3.00    a                13449  012:19.0   1516570     18.42

  >> This time HAP does terrible in compression.  It takes HAP 6 times longer
     than PKZIP:ex to get 23% worse compression.  And if that's not bad enough
     for you, it will take PAH FIFTY times longer than PKUNZIP to extract!

  >> Good grief!  With PKUNZIP you only have to wait 18 seconds, but with PAH,
     you have to wait almost 16 MINUTES!!  AND you're archive will be 280K
     larger with HAP.

  >> The moral of the story is that you better be very careful with what files
     you use HAP on.  That is, if you decide to use HAP at all.

  >> These big files really show the differences between the archivers.  For
     example, although SQZ:q0 does compress 0.05% better than PKZIP:ex, it
     takes almost 3 times longer to do it.  And that means waiting around
     3 and a half minutes longer.

  >> At the next levels ZIP:6, ZIP:3, and SQZ:q6 do pretty good and are fairly
     close to matching PKZIP.

  >> But ARJ clearly lags behind.


Compression, sorted by: Size

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
SQZ       1.08.3e a -q0             6060  005:33.0   1236629      1.00
PKZIP     2.04g  -a -ex             2137  001:57.4   1237261      1.00
ZIP       1.9    -9                 3746  003:25.8   1238308      1.00
SQZ       1.08.3e a -q3             2746  002:30.9   1241057      1.00
ZIP       1.9    -6                 1941  001:46.6   1242726      1.00
SQZ       1.08.3e a -m1             2318  002: 7.4   1244060      1.01
SQZ       1.08.3e a -q6             2001  001:49.9   1245526      1.01
ZIP       1.9    -3                 1618  001:28.9   1247798      1.01
PKZIP     2.04g  -a -en             1427  001:18.4   1253792      1.01
ZIP       1.9    -1                 1451  001:19.7   1257140      1.02
ARJ       2.39f   a -jm             3533  003:14.1   1257307      1.02
ARJ       2.39f   a -jm1            2307  002: 6.8   1259420      1.02
ARJ       2.39f   a -m1             2036  001:51.9   1261364      1.02
SQZ       1.08.3e a -q9             1751  001:36.2   1265875      1.02
PKZIP     2.04g  -a -ef             1045  000:57.4   1324195      1.07
ARJ       2.39f   a -m3             1181  001: 4.9   1345337      1.09
PKZIP     2.04g  -a -es              730  000:40.1   1361988      1.10
HYPER     2.5    -a                 2031  001:51.6   1442831      1.17
HAP3      3.00    a                13449  012:19.0   1516570      1.23
ARJ       2.39f   a -m4              905  000:49.7   1552530      1.26


Extraction, sorted by: Speed

Program   Description             Ticks   Min:Secs  Relative
========  ======================  ======  ========  ========
LHA       2.52    a -n            ERROR: Exit value of: 2
LHA       2.52    e -n            ERROR: Exit value of: 2
PKUNZIP   2.04g  -e (-ex)            340  000:18.7      1.00
PKUNZIP   2.04g  -e (-en)            344  000:18.9      1.01
PKUNZIP   2.04g  -e (-ef)            351  000:19.3      1.03
PKUNZIP   2.04g  -e (-es)            353  000:19.4      1.04
ARJ       2.39f   e (-jm1)           474  000:26.0      1.39
ARJ       2.39f   e (-jm)            475  000:26.1      1.40
ARJ       2.39f   e (-m1)            476  000:26.2      1.40
ARJ       2.39f   e (-m3)            547  000:30.1      1.61
SQZ       1.08.3e e (-q0)            610  000:33.5      1.79
SQZ       1.08.3e e (-q3)            659  000:36.2      1.94
SQZ       1.08.3e e (-m1)            660  000:36.3      1.94
SQZ       1.08.3e e (-q6)            669  000:36.8      1.97
SQZ       1.08.3e e (-q9)            677  000:37.2      1.99
ARJ       2.39f   e (-m4)            689  000:37.9      2.03
UNZIP     5.00   -j (-9)            1040  000:57.1      3.06
UNZIP     5.00   -j (-6)            1076  000:59.1      3.16
UNZIP     5.00   -j (-3)            1083  000:59.5      3.18
UNZIP     5.00   -j (-1)            1099  001: 0.4      3.23
HYPER     2.5    -x                 1699  001:33.4      4.99
PAH3      3.00    e                17205  015:45.3     50.56

  >> Here, LHA failed to compress the files because my RAM disk (which LHA
     used because of my TMP or TEMP environment variable) did not have enough
     room to hold the temporary archive file.  This is really not LHA's fault,
     but LHA never did that great anyway, so I didn't bother to re-run the
     test.

                             ķ
                               Winners Set 11  
         ķ
          Category 1 (size)    : PKZIP best, then ZIP,   then SQZ 
          Category 2 (speed)   : PKZIP best, then ZIP,   then ARJ 
          Category 3 (abs size): SQZ   best, then PKZIP, then ZIP 
          Category 4 (extract) : PKZIP best, then ARJ,   then SQZ 
         Ľ



   ---- TEST SET 12 -----------------------------------------------------

   Two large executable files from Microsoft Visual C++.

    apstudio.exe    880,288 bytes
    msvc.exe        772,208 bytes
                    -------
                  1,652,496 total bytes in 2 files


            DCCMP run as: "DCCMP -3 -ts -otest12.rsl archive test12 f:\test12\*.* f:\temp *.*"
   Batch ARCHIVE was run:       3 times...
Memory free for programs:     517 K
            Time per run: 0:45:18
      Total time elapsed: 2:15:55


Compression, sorted by: Speed

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
PKZIP     2.04g  -a -es              458  000:25.2    885080      1.00
ARJ       2.39f   a -m4              619  000:34.0    880381      1.35
PKZIP     2.04g  -a -ef              668  000:36.7    816146      1.46
ARJ       2.39f   a -m3              791  000:43.5    821257      1.73
PKZIP     2.04g  -a -en              949  000:52.1    789620      2.07
ZIP       1.9    -1                 1009  000:55.4    804893      2.20
ZIP       1.9    -3                 1152  001: 3.3    791912      2.51
SQZ       1.08.3e a -q9             1285  001:10.6    811456      2.80
ZIP       1.9    -6                 1328  001:13.0    787251      2.90
ARJ       2.39f   a -m1             1340  001:13.6    791190      2.93
HYPER     2.5    -a                 1375  001:15.5    854939      3.00
ARJ       2.39f   a -jm1            1414  001:17.7    791088      3.09
LHA       2.52    a -n              1422  001:18.1    813064      3.10
PKZIP     2.04g  -a -ex             1431  001:18.6    786214      3.12
SQZ       1.08.3e a -q6             1532  001:24.2    789518      3.34
ARJ       2.39f   a -jm             1644  001:30.3    790977      3.59
ZIP       1.9    -9                 1710  001:34.0    787657      3.73
SQZ       1.08.3e a -m1             1755  001:36.4    788795      3.83
SQZ       1.08.3e a -q3             1871  001:42.8    785959      4.08
SQZ       1.08.3e a -q0             2370  002:10.2    785811      5.17
HAP3      3.00    a                 6384  005:50.8    790238     13.93

  >> Again, we have a test set where HAP fails to get the absolute best
     compression size, but this time, HAP is not quite so bad.

  >> And again, SQZ takes significantly longer to get only a few bytes better
     compression than PKZIP.

  >> Again, ARJ lags behind ZIP and PKZIP in compression with decent speed.

  >> And ARJ also lags behind ZIP and PKZIP when it comes to speed with
     decent compression.


Compression, sorted by: Size

Program   Description             Ticks   Min:Secs  Size      Relative
========  ======================  ======  ========  ========  ========
SQZ       1.08.3e a -q0             2370  002:10.2    785811      1.00
SQZ       1.08.3e a -q3             1871  001:42.8    785959      1.00
PKZIP     2.04g  -a -ex             1431  001:18.6    786214      1.00
ZIP       1.9    -6                 1328  001:13.0    787251      1.00
ZIP       1.9    -9                 1710  001:34.0    787657      1.00
SQZ       1.08.3e a -m1             1755  001:36.4    788795      1.00
SQZ       1.08.3e a -q6             1532  001:24.2    789518      1.00
PKZIP     2.04g  -a -en              949  000:52.1    789620      1.00
HAP3      3.00    a                 6384  005:50.8    790238      1.01
ARJ       2.39f   a -jm             1644  001:30.3    790977      1.01
ARJ       2.39f   a -jm1            1414  001:17.7    791088      1.01
ARJ       2.39f   a -m1             1340  001:13.6    791190      1.01
ZIP       1.9    -3                 1152  001: 3.3    791912      1.01
ZIP       1.9    -1                 1009  000:55.4    804893      1.02
SQZ       1.08.3e a -q9             1285  001:10.6    811456      1.03
LHA       2.52    a -n              1422  001:18.1    813064      1.03
PKZIP     2.04g  -a -ef              668  000:36.7    816146      1.04
ARJ       2.39f   a -m3              791  000:43.5    821257      1.05
HYPER     2.5    -a                 1375  001:15.5    854939      1.09
ARJ       2.39f   a -m4              619  000:34.0    880381      1.12
PKZIP     2.04g  -a -es              458  000:25.2    885080      1.13


Extraction, sorted by: Speed

Program   Description             Ticks   Min:Secs  Relative
========  ======================  ======  ========  ========
PKUNZIP   2.04g  -e (-ex)            179  000: 9.8      1.00
PKUNZIP   2.04g  -e (-en)            223  000:12.3      1.24
PKUNZIP   2.04g  -e (-es)            243  000:13.4      1.35
PKUNZIP   2.04g  -e (-ef)            247  000:13.6      1.38
LHA       2.52    e -n               307  000:16.9      1.71
ARJ       2.39f   e (-m1)            309  000:17.0      1.72
ARJ       2.39f   e (-jm)            314  000:17.3      1.75
ARJ       2.39f   e (-jm1)           318  000:17.5      1.77
ARJ       2.39f   e (-m3)            337  000:18.5      1.88
SQZ       1.08.3e e (-q0)            393  000:21.6      2.19
ARJ       2.39f   e (-m4)            409  000:22.5      2.28
SQZ       1.08.3e e (-m1)            414  000:22.7      2.30
SQZ       1.08.3e e (-q6)            432  000:23.7      2.41
SQZ       1.08.3e e (-q3)            435  000:23.9      2.42
SQZ       1.08.3e e (-q9)            442  000:24.3      2.46
UNZIP     5.00   -j (-6)             723  000:39.7      4.03
UNZIP     5.00   -j (-9)             727  000:39.9      4.05
UNZIP     5.00   -j (-3)             740  000:40.7      4.12
UNZIP     5.00   -j (-1)             754  000:41.4      4.20
HYPER     2.5    -x                  996  000:54.7      5.55
PAH3      3.00    e                 7935  007:16.0     44.17

  >> And finally, PAH again takes a ridiculous 44 times longer than PKUNZIP
     to extract.

                             ķ
                               Winners Set 12  
         ķ
          Category 1 (size)    : PKZIP best, then ZIP,   then SQZ 
          Category 2 (speed)   : PKZIP best, then ZIP,   then ARJ 
          Category 3 (abs size): SQZ   best, then PKZIP, then ZIP 
          Category 4 (extract) : PKZIP best, then ARJ,   then SQZ 
         Ľ




   Summary Stats...
   ----------------

      The following summarizes the winners in each Category and the winners in
   two combined categories.  But first, let's repeat the description of each
   Category:

      Category 1: Great compression size, ok speed.

         Look for an archiver that gets great compression size, but without
         making you wait forever.  Waiting a little longer for a significant
         improvement is OK, but it is not OK to wait a lot longer for only
         a few more bytes saved.

      Category 2: Great compression speed, ok size.

         Look for an archiver that is very fast without sacrificing a lot in
         compression size.

      Category 3: Absolute best compression size, speed doesn't matter.

         Just look for the archiver that compresses the smallest and ignore
         how long it took to do it, or how long it will take to extract.

      Category 4: Great extraction speed, decent compression.
 
         Look for an archiver that can extract fast, but only if its
         compression was good enough to make de-compression meaningful.


      Please note that categories 1 & 2 are a somewhat subjective.  That is,
   the winner depends somewhat on what I define as "ok speed" and "ok size".
   Please feel free to pick your own "winners" from the raw data if you
   don't trust my judgments.

      Also, please remember that even if you ran the exact same tests on your
   computer, you may NOT get the same results that I have gotten.  This is
   because a lot of factors can vary the results.  These include:

      o Amount of conventional memory.
      o Amount of extended or expanded memory and what types (EMS, XMS, etc).
      o Amount of secondary cache.
      o Type of processor (286, 386, 486).
      o Type of drivers loaded (disk cachers, ram disks, etc)
      o Speed of hard disk.
      o Use of floppy disk.

      Of course, in real life, you won't even be compressing the same data as
   I compressed for these 12 test sets.  And, as these test sets have shown,
   the archivers can vary greatly depending on the type of data compressed.

      Thus, while this archiver comparison is generally accurate, it may not
   be accurate for your circumstances.  However, there is a solution if you
   care to spend a little time.  Just use my archiver comparer program (DCCMP)
   to run tests on your own files and on your own computer.  That way you can
   decide for yourself what is the best archiver for you.

      Now for the winners...


                   ķ
                     Winners Category 1 (size)  
         ķ
          Set  1: PKZIP best, then ZIP,   then SQZ      
          Set  2: PKZIP best, then SQZ,   then ZIP      
          Set  3: PKZIP best, then ARJ,   then ZIP      
          Set  4: PKZIP best, then ARJ,   then SQZ      
          Set  5: PKZIP best, then ZIP,   then SQZ      
          Set  6: PKZIP best, then ZIP,   then ARJ      
          Set  7: LHA   best, then SQZ,   then ARJ      
          Set  8: SQZ   best, then LHA,   then ARJ      
          Set  9: HAP   best, then PKZIP, then ZIP      
          Set 10: HYPER best, then ARJ,   then ZIP      
          Set 11: PKZIP best, then ZIP,   then SQZ      
          Set 12: PKZIP best, then ZIP,   then SQZ      
         ĺ
          PKZIP:   8*3     +       1*2   +      0  = 27 
            ZIP:   0*3     +       5*2   +      4  = 14 
            SQZ:   1*3     +       2*2   +      5  = 12 
            ARJ:   0*3     +       3*2   +      3  =  9 
            LHA:   1*3     +       1*2   +      0  =  5 
            HAP:   1*3     +       0*2   +      0  =  3 
          HYPER:   1*3     +       0*2   +      0  =  3 
         Ľ


                   ķ
                     Winners Category 2 (speed) 
         ķ
          Set  1: PKZIP best, then ARJ,   then ZIP      
          Set  2: PKZIP best, then ZIP,   then ARJ      
          Set  3: PKZIP best, then ARJ,   then ZIP      
          Set  4: PKZIP best, then ARJ,   then ZIP      
          Set  5: PKZIP best, then ARJ,   then ZIP      
          Set  6: PKZIP best, then ARJ,   then ZIP      
          Set  7: PKZIP best, then SQZ,   then LHA      
          Set  8: PKZIP best, then SQZ,   then LHA      
          Set  9: PKZIP best, then ARJ,   then ZIP      
          Set 10: PKZIP best, then ZIP,   then ARJ      
          Set 11: PKZIP best, then ZIP,   then ARJ      
          Set 12: PKZIP best, then ZIP,   then ARJ      
         ĺ
          PKZIP:  12*3     +      0*2  +        0  = 36 
            ARJ:   0*3     +      6*2  +        4  = 16 
            ZIP:   0*3     +      4*2  +        6  = 14 
            SQZ:   0*3     +      2*2  +        0  =  4 
            LHA:   0*3     +      0*2  +        2  =  2 
          HYPER:   0*3     +      0*2  +        0  =  0 
            HAP:   0*3     +      0*2  +        0  =  0 
         Ľ


                 ķ
                   Winners Catagory 3 (abs size) 
         ķ
          Set  1: ZIP   best, then PKZIP, then SQZ      
          Set  2: HAP   best, then SQZ,   then PKZIP    
          Set  3: HAP   best, then PKZIP, then SQZ      
          Set  4: HAP   best, then SQZ,   then PKZIP    
          Set  5: HAP   best, then SQZ,   then ZIP      
          Set  6: HAP   best, then SQZ,   then ZIP      
          Set  7: HAP   best, then SQZ,   then LHA      
          Set  8: HAP   best, then SQZ,   then LHA      
          Set  9: HAP   best, then SQZ,   then ZIP      
          Set 10: HAP   best, then HYPER, then ARJ      
          Set 11: SQZ   best, then PKZIP, then ZIP      
          Set 12: SQZ   best, then PKZIP, then ZIP      
         ĺ
            HAP:  9*3       +       0*2  +      0  = 27 
            SQZ:  2*3       +       7*2  +      2  = 22 
          PKZIP:  0*3       +       4*2  +      2  = 10 
            ZIP:  1*3       +       0*2  +      5  =  8 
          HYPER:  0*3       +       1*2  +      0  =  2 
            LHA:  0*3       +       0*2  +      2  =  2 
            ARJ:  0*3       +       0*2  +      1  =  1 
         Ľ



                 ķ
                   Winners Catagory 4 (extract) 
         ķ
          Set  1: PKZIP best, then ARJ,   then SQZ      
          Set  2: PKZIP best, then SQZ,   then ARJ      
          Set  3: PKZIP best, then ARJ,   then SQZ      
          Set  4: PKZIP best, then SQZ,   then ARJ      
          Set  5: PKZIP best, then SQZ,   then ARJ      
          Set  6: ZIP   best, then PKZIP, then ARJ      
          Set  7: PKZIP best, then LHA,   then SQZ      
          Set  8: PKZIP best, then LHA,   then SQZ      
          Set  9: PKZIP best, then ARJ,   then SQZ      
          Set 10: PKZIP best, then SQZ,   then ARJ      
          Set 11: PKZIP best, then ARJ,   then SQZ      
          Set 12: PKZIP best, then ARJ,   then SQZ      
         ĺ
          PKZIP:  11*3     +       1*2  +       0  = 35 
            ARJ:   0*3     +       5*2  +       5  = 15 
            SQZ:   0*3     +       4*2  +       7  = 15 
            LHA:   0*3     +       2*2  +       0  =  4 
            ZIP:   1*3     +       0*2  +       0  =  3 
          HYPER:   0*3     +       0*2  +       0  =  0 
            HAP:   0*3     +       0*2  +       0  =  0 
         Ľ



                ķ
                  Winners Catagory 1 & 2 Combined 
         ķ
          PKZIP:  20*3     +       1*2  +       0  = 62 
            ZIP:   0*3     +       9*2  +      10  = 28 
            ARJ:   0*3     +       9*2  +       7  = 25 
            SQZ:   1*3     +       4*2  +       5  = 16 
            LHA:   1*3     +       1*2  +       2  =  7 
            HAP:   1*3     +       0*2  +       0  =  3 
          HYPER:   1*3     +       0*2  +       0  =  3 
         Ľ



                 ķ
                   Winners Catagory ALL Combined 
         ķ
          PKZIP:  31*3     +       6*2  +       2  =107 
            SQZ:   3*3     +      15*2  +      14  = 53 
            ARJ:   0*3     +      14*2  +      13  = 41 
            ZIP:   1*3     +      11*2  +      14  = 39 
            HAP:  10*3     +       0*2  +       0  = 30 
            LHA:   1*3     +       3*2  +       4  = 13 
          HYPER:   1*3     +       1*2  +       0  =  5 
         Ľ



   Conclusion...
   -------------

      Now I know that some people will just skip to this part of my
   comparison and look at the above tables without reading the preceding
   discussion.  But if you do read the preceding discussion and look at
   the raw data, you will see that the archivers can vary greatly depending
   on the type of data being compressed.

      Thus, one conclusion is the observation that what archiver is best
   for you depends greatly on what types of data you work with and on how
   you work with that data.

      Moreover, the conclusion is really up to you, because only you can
   decide how important the trade-off between speed of compression and size
   of compression is.

      If absolute size is your only criteria, then HAP is your archiver.
   In the majority of test sets, it compressed the best.  And in many of
   those, it compressed significantly better.  But this has to weighed
   against its speed.  Or rather, its lack of speed.  HAP is up to 18 times
   slower compressing and up to 50 times slower de-compressing!

      If you compress large files, this speed trade-off can be really
   important.  After all, who wants to wait around for 12 minutes with one
   archiver when another can do the job in less than 2 minutes.

      And of course it gets more complicated when many of the archivers
   offer multiple levels of compression size and speed.

      And even if one archiver does a good job most of the time, at other
   times it can preform terribly.

      Nevertheless, when you go over all the data above like I have, certain
   general things become apparent.  And I think that the above summary tables
   bare this out.



   So, generally speaking...
   -------------------------

      PKZIP...

         As the above tables show, PKZIP loses in only one Category, the
      absolute size category.  But even in this Category, it comes in a
      decent third place with only HAP and SQZ beating it.  But HAP has
      a number of problems with it including poor support, poor features,
      and terrible speed.  And SQZ generally gets only a little better
      compression while taking considerably longer to do so.

         And consider this, while ARJ is generally considered PKZIP's main
      competitor, in this Category where PKZIP comes in third, ARJ comes in
      dead last (though very close to HYPER and LHA).

         In every other Category though, PKZIP not only wins, but wins
      with twice the score of anybody else.  In test after test, PKZIP
      generally was that quickest archiver to achieve a given level of
      compression.  And it not only compressed fast, but it also compressed
      the best if you throw out the archivers that took excessively long.

         PKZIP was not only the fastest archiver, it was also the most
      consistent.  Often, the other archivers would have cases where they
      preformed very poorly in speed or size, but PKZIP remained reliable.

         Not only is PKZIP reliable in speed and size of compression, but
      because PKZIP is used by so many more people than any other archiver,
      it is also a more reliable program.  Even though PKZIP 2.04 came out
      with a number of bugs, they were quickly found because of the massive
      number of people using it, and then were quickly fixed.

         Moreover, PKZIP is somewhat of a standard, and standards should
      not lightly be thrown away (or quickly updated with new algorithms
      I might add).  Indeed, it is because of the PKZIP standard that
      other compatible archivers like ZIP were created.

         Add to this PKZIP's popularity, features, and availability of
      compatible archivers on many platforms, and you have an easy winner.


      ARJ...

         It used to be that ARJ was strong on compression size and weak
      on speed.  Now just the opposite is true.  ARJ did its best in the
      two speed categories and did its worst in the two size categories.

         ARJ came in second in the "speed" Category, but not by much.  On
      different machines, ZIP might have come in second place.

         ARJ tied for second with SQZ in the "extract" category.

         ARJ came in forth in the "size" Category, but perhaps ARJ could
      do well enough on the specific types of data you use to move it up a
      place or two.

         Finally, ARJ came in dead last in the absolute size category.

         Nevertheless, ARJ does have a LOT of features (if you're willing
      to take the time to figure them out), and is based on portable code,
      and so I would generally rate ARJ in second place overall, but with
      ZIP and SQZ very close behind (if not better depending on your
      preferences and circumstances).


      ZIP...

         I find it interesting that an archiver like ZIP performed as
      well as it did.  After all, ZIP is a freeware program that has
      portable source code available that can be used freely.  Moreover,
      ZIP was written by a group of people that were often more concerned
      with adding support for this or that platform then they were on speed.

         If ZIP's extraction speed were improved to match the extraction
      speed of SQZ or ARJ, then ZIP could be rated the second place winner.
      Even as it is, ZIP could be rated in second place, seeing that it
      did come in second place in the combined 1 & 2 categories.

         In the end, ZIP's good placement strengthens PKZIP's 1st place
      rating, and gives a good option for people who could use the source
      code or simply like the price of freeware.


      SQZ...

         SQZ reminds me of ARJ a while back.  SQZ does great in compression
      size, but is lacking in speed.  If the speed could be improved, then
      SQZ would become the 2nd place finisher.  If the speed were improved
      a lot, it could conceivably become the 1st place winner.

         Still, SQZ's size is not THAT much better than PKZIP, and thus,
      it would be very hard for SQZ to replace such a solid standard.


      HAP...

         HAP is interesting because it sets a new threshold of compression.
      I'm sure that some people will use it just because it can compress
      significantly better than PKZIP.  Even if it is so slow.  And even
      if the extraction is 50 times slower than PKUNZIP.

         But watch out!  HAP doesn't always compress well.  In some cases
      it compressed very poorly (and slow on top of that).

         HAP seems to do well on ASCII files and especially well on English
      text.  It would be nice to see some archiver incorporate the HAP
      algorithm as an option along with the other faster algorithms.  And,
      even if a person selects the HAP option, it should not be used on
      files that it compresses poorly (like binary files).


      LHA...

         I had hoped that this newer version of LHA would do better.  But,
      for the most part, LHA is easily out done by PKZIP, ARJ, ZIP, or
      SQZ, and so there's no reason to use it.

         LHA preforms the best on large numbers of very small files.


      HYPER...

         Although HYPER can be put in last place for this comparison, it
      shouldn't be completely written off.  There are a few types of files,
      (admittedly not many), where HYPER does better than any other
      archiver.  If you have these types of files, then HYPER could be
      the archiver for you.  Hard to imagine, but who knows?!

         How do you find out?  Just run my DCCMP program to test HYPER
      against the other archivers on your own type of data.



   Epilogue
   --------

      Well, I could have tested a lot more types of files, and I could
   have tested them under a lot more conditions (like low memory).  And, I
   could have written a lot more about what all the results mean.  But
   this has already taken plenty of time.  So, this will just have to
   do...  

                                   Dean W. Cooper
                                   June 9, 1993

