💾 Archived View for gemini.spam.works › mirrors › textfiles › programming › compfile.txt captured on 2023-01-29 at 11:24:35.

View Raw

More Information

⬅️ Previous capture (2020-10-31)

-=-=-=-=-=-=-


            =======================================================
            COMPRESSING YOUR EXECUTABLES --- SOMETHING FOR NOTHING?
            =======================================================
                                by Dickford Cohn


Ah yes, the current "rage" in PC-land:  EXECUTABLE FILE COMPRESSION!  Does
it work?  Yes!  Very well!  Is it "something for nothing?"  Well, you be the
judge --- in my experience, it is VERY useful.  This article is intended to
"corral", in one place, most of the "bits and pieces" of what is known about
these programs and to offer performance comparisons and operating tips gleaned
from those who have used them.  This article centers upon the THREE most common
methods available to us --- those that I've used and tested.

--WHAT IS EXECUTABLE FILE COMPRESSION?
It is simply a method by which an EXECUTABLE file (.COM or .EXE) is made small-
er on disk (outwardly similar to PKZIP).  If you have a lot of executables, you
can save substantially on disk space.  When a file is "compressed" a small addi-
tion is made to the code that UNCOMPRESSES the executable to "full size" when it
is loaded into RAM.  It's that simple (yeah, the programming is a LOT more
involved than that!)

--IS EXECUTABLE FILE COMPRESSION SOMETHING I CAN USE?
It depends on how you use your system and what you have on it.  For example, if
your PC emulates your office PC in that you have 50-60 executables and you pri-
marily have spreadsheet/word processing programs on your hard disk, an execut-
able file compressor would probably not be worth the expense of a download.
On the other hand, if your system has LOTS of executables, executable file com-
pression is quite effective in re-capturing valuable disk space.  In my own case
I have almost 950 executables that, at normal size, take up almost 25Meg of disk
space.  I have compressed over 500 of these executables, re-capturing almost
9Meg of disk space --- representing about 15% of my TOTAL OCCUPIED DISK SPACE!
TWO IMPORTANT NOTES:  (1) Executable file compression is NOT a replacement for
other disk management techniques (i.e. good housekeeping):  It IS an effective
tool to add to your arsenal.  (2) Executable file compression is NOT A GOOD IDEA
in the office setting --- unless YOU are SOLELY responsible for your PC:  In
the hands of the uninitiated, these programs can be dangerous.

--IS EXECUTABLE FILE COMPRESSION DANGEROUS?
ANY program that can OVERWRITE an existing file is dangerous!  You MUST have a
BASIC UNDERSTANDING of what you are doing and employ the standard safeguards
that ANYONE would employ (i.e. backups) when dealing with programs that have
this capability.  With that in mind, it must be said that ALL the programs des-
cribed here in detail are thoughtfully designed and have certain safeguards
built in.  However, there is NO EXCUSE for NOT READING THE DOCUMENTATION --- it
is BRIEF and CONCISE.

                     =====================================
                     ADVANTAGES OF COMPRESSING EXECUTABLES
                     =====================================

There are TWO distinct advantages to compressing executable files:

  1. You can achieve a substantial savings in disk space by using these util-
     ities: Typically, you can re-capture 35-40% of the disk space now occupied
     by your executables.  You have to determine if the OVERALL space gained is
     worth the effort.

  2. A less-heralded but equally significant benefit of executable compression
     is that compression (a form of encryption) offers some protection against
     viruses that overwrite program code.  Since the "file header" is relocated,
     the virus can't find it (to attach itself); hence the virus cannot over-
     write code.  However, the executable is still "externally infected" --- it
     CAN load the little critter into RAM, ready to "pounce" on some uncompress-
     ed executable.  At least, your executable is not TRASHED.

                            ======================
                            GENERAL TIPS FOR USAGE
                            ======================


  1. DO NOT COMPRESS DOS's COMMAND.COM, or ANY CRITICAL DOS FILES --- if you
     don't know which DOS files are CRITICAL, don't compress ANY OF THEM. (Watch
     for my upcoming article, HARD DISK MANAGEMENT TIPS, which will include a
     section on DOS files you can "dump" or replace with "modern" equivalents:
     Saves about 300k on your disk!)

  2. If you choose to compress executables at all, pick ONE method and stick
     with THAT ONE.  The confusion caused by "mixing 'em up" is not worth it.

  3. When compressing executables for the first time, or experimenting, create
     a separate directory and COPY your "target" executable to it (this
     precludes damage caused by "typos" at the command line and such --- if you
     screw up, all you have to do is RE-COPY the file and try again.)  When you
     are satisfied with the result, RENAME the ORIGINAL executable, and copy
     the COMPRESSED executable to its original directory.  Now, TEST the "new"
     executable --- call up your program and see if ALL of its functions work.
     I mention this because SOME programs will compress just fine (i.e. with NO
     WARNINGS from the compression program) and yet they MAY NOT work properly,
     if AT ALL.

  4. Some programs have a companion "configuration" program that WILL NOT WORK
     on a compressed executable.  Just UNCOMPRESS the executable, re-configure
     (via the config program) what you want and then RE-COMPRESS the executable.


                                =================
                                WHAT'S OUT THERE?
                                =================

At this writing, I am aware of EIGHT executable file compression programs:

   - AXE         ...A program from Systems Enhancement Associates.  This is
                    a commercial software package ($65) that, outwardly at
                    least, offers no significant advantages over other methods
                    (see COMPARISON) and is NOT reviewed here.

   - EXEPACK     ...A MicroSoft product, NOT generally available but packaged
                    with certain software (MASM 5.1).  Although, apparently the
                    FIRST such program of this type (1986 copyright), it is NOT
                    in the same league as those reviewed here, although you are
                    LIKELY to encounter this method with some executables.

   - DIET        ...A program by the author of LEXEM (functions like PKZIP and
                    apparently in wide usage in Japan).  DIET is reviewed here.

   - LEXEM       ...Not currently distributed in the U.S.  (Likewise, you are
                    NOT likely to encounter files compressed with this method)

   - LZEXE       ...By Fabrice Bellard; the first generally available program of
                    this type --- reviewed here.

   - PKLITE      ...Shareware from PKWARE ($46) --- reviewed here.

   - SHRINK      ...An experimental method, not in the same class as those re-
                    viewed but interesting to those who may want to delve into
                    the "mysteries" of compression.

   - TINYPROG    ...Shareware from Tranzoa Associates.  Only slightly more eff-
                    ective than EXEPACK: No UNCOMPRESS available.  Not reviewed.


                              ====================
                              PROGRAM DESCRIPTIONS
                              ====================


 +------------+ The "newest" of the three tested, by Teddy Matsumoto, the author
 | DIET10.EXE | of LEXEM an "archive" program used in Japan.  This program app-
 +------------+ ears well written -BUT- by the authors own subtle admonition, it
                is experimental.  It SEEMED to work slightly better than the
                other two -BUT- and this is a big BUT:  IT DOES NOT CHECK FOR
                EXECUTABLES THAT USE OVERLAYS --- IT JUST COMPRESSES THEM!
                YOU WILL NOT BE ABLE TO RESTORE THE EXECUTABLE WITH THE '-R'
                SWITCH, EITHER --- THE FILE IS DESTROYED!  (That's WHY you
                maintain back-ups).  The program DOES ALLOW you to make back-ups
                however, so you should be safe.  When I attempted to compress
                a 1 Meg+ executable (that I knew used overlays), the error that
                came up was "insufficient memory" (more about this later).
                DIET also compresses using wildcards and WILL COMPRESS virtually
                any file EXCEPT one that is already compressed by another
                program.
        PRICE:  The current version on EXEC-PC (DIET10.ZIP) is              **FREE**

 +------------+ Developed by Fabrice Bellard (current version is 0.91, backward
 |  LZEXE.EXE | compatible with version 0.90).  This program was the FIRST
 +------------+ generally available executable file compressor --- and is the
                most widely used (see SUPPORT PROGRAMS).  It also is programmed
                with some forethought:  For example, it can recognize the
                MicroSoft EXEPACK compression method in executables; it can
                UN-compress EXEPACK'd files and RE-compress them with it's own
                method (the savings is significant).  It's error prompts work
                as advertised -BUT- they're too polite!  For example, if you
                decide to go ahead and compress an executable that uses over-
                lays, you'll NEVER restore it with the un-compressor UNLZEXE.EXE
                However, since LZEXE DOES NOT OVERWRITE your ORIGINAL FILE, you
                are safe!  LZEXE copies your original file to an ".OLD" exten-
                sion:  You simple erase the "bad .EXE" and RENAME the ".OLD"
                file to an ".EXE" extension.  The original program's prompts are
                in French (there is a program in English --- ENGLZEXE.ZIP):  I
                would recommend LZESHELL to sensibly use LZEXE.  LZEXE also com-
                presses .COM files, but it first converts them to .EXE files and
                THEN compresses them.  This measurably slows down the process
                AND you CANNOT restore "converted" .EXE to .COM files (the .OLD
                file is STILL created, though).  This program comes with LZEXE
                (the compressor), UPACKEXE.EXE (unpacks EXEPACK'd files) and
                COMTOEXE.EXE (converts .COM files to .EXE).  You MUST also have
                UNLZEXE.EXE, by Kou Kurizono, to UN-compress LZEXE'd files!
        PRICE:  The current version on EXEC-PC (LZEXE91.ZIP) original French
                version -OR- (ENGLZEXE.ZIP) English version, are        **FREE**

 +------------+ Developed by PKWARE (the purveyors of PKZIP, et al) this program
 | PKLITE.EXE | is a textbook example of "completely developed" software.
 +------------+ Unlike the other two examples, there are no "cliffs" to fall
                over; no unforgiving "surprises".  Performance was slightly less
                than the other two overall --- the difference is nominal.  The
                elements I liked best are: This is a COMPREHENSIVE package, fea-
                turing a logical selection of command line options; it IS
                INTUITIVE; -AND- unlike the other two, it could COMPLETELY RE-
                CONSTRUCT an executable with overlays that it had COMPRESSED!
                This program compresses (and UN-compresses) .COM and .EXE only.
                PKLITE WILL NOT COMPRESS Windows Executables (A SAFETY FACTOR).
        PRICE:  The current version on EXEC-PC (PKLTE103.EXE) costs      **$46**





                                ===================
                                SUPPORTING PROGRAMS
                                ===================

     The following is a PARTIAL listing of programs that provide support for the
     compression programs above (files on EXEC-PC):

      ?  LZESHL21.ZIP - Excellent English Language shell for LZEXE 0.91 ---
                        enables and TRANSLATES ALL functions of LZEXE from
                        within.   By Pete Petrakis                     **FREE**

      ?  DRX100.ZIP   - User-configurable shell, provides directory/subdirectory
                        display of COMPRESSED/UNCOMPRESSED executables (AXE,DIET
                        PKLITE, EXEPACK, LZEXE and TINYPROG). Allows you to sel-
                        ect COMPRESS/UNCOMPRESS method:  Offers "point-n-shoot"
                        file selection.  By Raymond T. Kaya             **FREE**

      ?  CHK4.ZIP     - Re-directable compressed file reporter, with many report
                        options.  Now "sees" ALL compressed executables on the
                        entire drive, by subdirectory.  By John Land    **FREE**

      ?  UNLZEXE5.ZIP - REQUIRED FOR LZEXE. UN-compresses both versions of LZEXE
                        (Vers .090/.091).  By "Kou" Kurizono            **FREE**
     Note that there are OTHER programs available, but these are the ones I've
     used, so I can attest to their reliability:   They're all EXCELLENT!

                              =======================
                              PERFORMANCE COMPARISONS
                              =======================

     The test data shown in the table(s) below are relative, and by no means,
     exhaustive:  Timing was performed with a Turbo C++ shell that converts
     standard "timer ticks" to fractions of a second.  I must stress that
     since you're likely to use these programs only once on a given executable,
     execution TIME is NOT A SIGNIFICANT FACTOR.  Programs were also tested to
     see if the various safeguards outlined in the DOCS actually worked:  I'm
     happy to report that they performed flawlessly in ALL cases.

     File/Original Size
   -----------------------   ....Compressed with....     ...UNcompressed with..
     QWIK.EXE/8873 Bytes     DIET    LZEXE    PKLITE     DIET   UNLZEXE  PKLITE
   -----------------------
          COMPRESSED SIZE    4937     5070      5164      --       --      --

           TIME (seconds)     1.8      1.3       1.9      1.9      2.8     1.9

          SIZE REDUCTION:     44%      43%       42%
   ============================================================================
   -----------------------   ....Compressed with....     ...UNcompressed with..
     FW.EXE/26510 Bytes      DIET    LZEXE    PKLITE     DIET   UNLZEXE  PKLITE
   -----------------------
          COMPRESSED SIZE    20236   21131     20970      --       --      --

           TIME (seconds)     1.9      2.6       2.8      2.2      3.8     2.8

          SIZE REDUCTION:     24%      20%       21%
   ============================================================================
 -------------------------   ....Compressed with....     ...UNcompressed with..
   CSHOW1.EXE/89904 Bytes    DIET    LZEXE    PKLITE     DIET   UNLZEXE  PKLITE
 -------------------------
          COMPRESSED SIZE    53584   52211     55572      --       --      --

           TIME (seconds)     3.0      8.6       9.3      3.1      5.3     4.5

          SIZE REDUCTION:     40%      42%       38%

PERFORMANCE COMPARISONS (Continued)

 -------------------------   ....Compressed with....     ...UNcompressed with..
   TURBO.EXE/156321 Bytes    DIET    LZEXE    PKLITE     DIET   UNLZEXE  PKLITE
 -------------------------
          COMPRESSED SIZE   107350   110398   107765      --       --      --

           TIME (seconds)     4.5     16.8      22.9      4.1      6.1     6.2

          SIZE REDUCTION:     31%      29%       31%
 ==============================================================================
 SUMMARY:

  Average Time:(Secs/Kbyte) .0398    .1041     .1310

  Average Size Reduction:     34%      33%       32%
                          ==============================

  As you can see by this modest "test", ALL of these units performed about the
  same --- differences are negligible.  Overall, DIET was nominally "quicker"
  AND compressed more "tightly" (for you performance enthusiasts).  It WAS
  INTERESTING to NOTE that the effectiveness of the compression is apparently
  related to the development method (programming language) of the executable.
  Note, for example, the DIFFERENCE in the SIZE REDUCTION between QWIK.EXE and
  FW.EXE. I KNOW that FW.EXE is programmed entirely in ASSEMBLER, while QWIK.EXE
  is programmed in Turbo C++:  I DON'T KNOW enough about the technical aspects
  of compression to comment intelligently on why this happens.  One other item
  was noted:  Compressed executables do SEEM to take a slight bit longer to
  do their thing --- anywhere from a fraction of a second to three seconds:
  This on a 16Mhz PS/2 --- the differential is GREATER on slower machines:
  (When tested on an IBM "Turbo" XT (8Mhz) --- execution time is proportionately
  slower).  During the tests, PKLITE was used with the "create backup file"
  switch ON (strangely, it seemed to work faster that way).  DIET was used
  BOTH ways (create backup/just overwrite) with no apparent difference in time.

                            ======================
                            COMPARISON OF FEATURES
                            ======================

                                        DIET          LZEXE          PKLITE
                                        ------        ------         ------
 ?-Tests for/Warns of Executables
     that use OVERLAYS                  NO(1)         Yes(1)         Yes(1)
 ?-Indicates File Already Compressed    NO(2)         Yes(2)         Yes(2)
 ?-Identifies Compression Method        NO(2)         Yes(2)         Yes(2)
 ?-Safeguards Against Compressing
     WINDOWS Executables                NO             NO            Yes
 ?-Restores Compressed Executables
     that use OVERLAYS                  NO             NO            Yes
 ?-Automatic Back-Up of Original        NO             Yes           NO
 ?-Back-Up Option (Switch)              Yes            NO            Yes
 ?-Compresses Files OTHER than
     Executables                        Yes(3)         NO            NO
 ?-Compresses .COM and .EXE             Yes            Yes(4)        Yes
 ?-Compresses ANY SIZE File             NO(5)          Yes           Yes
 ?-UN-compresses Files it
     Compresses                         Yes            NO(6)         Yes
 ?-Support                            Limited        Limited         FULL
 ?-Documentation                      Good(7)        Good(7)         Excellent


NOTES.........................................................................
 (1) Both PKLITE and LZEXE warn of files using overlays: DIET just OVERWRITES
     the TARGET file --- you MUST SPECIFY the "create backup" ('-O') option
     on the command line.  This is a potentially fatal flaw with DIET 1.0!


NOTES (Continued).............................................................
 (1a)K. Okubo (on CIS) insists that DIET DOES NOT COMPRESS executables that use
     overlays --- that has NOT been my experience.
 (2) DIET and PKLITE simply state "file cannot be compressed" --- LZEXE can
     detect files compressed with EXEPACK, un-compress them and re-compress
     them with its own method: A valuable option with some commercial software.
     PKLITE now has a little utility that WILL identify its own compression
     method --- NONE of these utilities can identify compression methods OTHER
     than their own.  (The shell DIRX takes up the slack here).
 (3) DIET can compress ANY file, executable or otherwise.  HOWEVER, there is no
     visual indicator (e.g. a .DIE extension) to tell you that they ARE com-
     pressed (they are NOT usable in their compressed state --- they must be
     "manually" uncompressed, first).  I'm hard pressed to come up with a use
     for this option:  I suppose you COULD compress entire subdirectories that
     were seldom used, but this could get to be tricky; particularly if you
     moved the files to another directory or to diskette.  PKZIP is much more
     useful in this regard than DIET -and- more intuitive.
 (4) LZEXE first must convert .COM files to .EXE files, slowing down the process
     of compression (I would "guesstimate" that it would be roughly double the
     time shown in the "time trials" but remember that .COM files are limited to
     64k in size, so again, time is NOT significant).  Also, you must remember
     that you cannot convert COMTOEXE'd .EXE files back to .COM!
 (5) DIET apparently differs from the other two in that it seems to bring the
     ENTIRE target file into RAM --- if the file size exceeds available memory,
     DIET produces an "insufficient memory" message and does not execute.  Note
     that PKWARE's file WHATSNEW.103 offers another potential explanation.
 (6) In order to UN-compress LZEXE'd files, you MUST use UNLZEXE.EXE (see
     SUPPORTING PROGRAMS), which is NOT bundled with LZEXE.EXE
 (7) Documentation runs the gamut:  The DOCS for DIET are GOOD but I don't
     feel they adequately warn of the pitfall of compressing files with
     overlays:  In fact, the DOCS are ebullient and enthusiastic (I would be,
     too, if I had written the program).  LZEXE's original DOCS are in French,
     so they are of limited value, at best.  There IS an ENGLISH version on
     EXEC-PC that you may want to download.  PKLITE's documentation is the
     usual THOROUGH job, filled not only with specifics about PKLITE, but also
     file compression in general and even compares PKLITE to LZEXE.  It is
     understandably biased:  More significantly, it is VERY informative.

 SUPPORT - Support for DIET consists of a CompuServe ID (in the documentation)
           to which you can address correspondence (E-Mail).  To the best of my
           knowledge, you can't contact the author of LZEXE at all.  PKWARE
           provides FULL SUPPORT for all its REGISTERED software and operates
           its own BBS.  There are a considerable number of FREE/SHAREWARE
           packages that offer additional support for ALL these programs.

                             ========================
                             A WORD ABOUT OVERLAYS...
                             ========================

  Well, you've seen the mention of "...executables that use overlays" throughout
  this text --- THAT IS INTENTIONAL:  Quite a bit of today's commercial software
  have executable files which use overlays.  OK...what are OVERLAYS?  Overlays
  are SECTIONS of a program's function code, which are "read" into the
  executable "shell" as needed by the program.  Confused?  Let's use an
  analogy:  Think of your executable as the HANDLE of a SOCKET WRENCH set and
  OVERLAYS as being the actual SOCKETS:  You simply "switch" the sockets (over-
  lays) in and out as needed to perform the various functions you need.  While
  all of the functions you might want to perform are at your fingertips, you
  can only perform ONE AT A TIME (i.e. you can use only ONE socket at a time).
  This is done primarily so that you have enough room in RAM to create/edit a
  file -AND- load your executable.  Additionally, some programs are so large
  that not ALL of the program could be loaded into the RAM normally available on
  your system (e.g. Certain spreadsheet programs use overlays extensively ---
  actually the spreadsheet you're working on IS AN OVERLAY ITSELF.)  When a file

A WORD ABOUT OVERLAYS (Continued)

  compressor comes along, its "algorithms" determine that the file space in the
  "shell" is mostly EMPTY space and proceed to re-write the file header to
  the "correct" file size:  A FATAL nicety!  Now, there is NO ROOM LEFT for
  the "overlay" --- i.e. the spindle for the socket is GONE!  (Yeah, I know
  this isn't a PERFECT analogy, but you get the drift.)  FORTUNATELY, with two
  of the three programs mentioned (LZEXE and PKLITE) you are adequately WARNED
  that the executable uses overlays BEFORE you can proceed.

                         =============================
                         WHAT ELSE TO WATCH OUT FOR...
                         =============================

  Some executables (sometimes called "runtime modules") have the ability to
  actually change their size while in memory --- they write additional code to
  THEMSELVES in order to accomplish certain tasks or to configure themselves
  according to options supplied by you.  NONE OF THE ABOVE-MENTIONED PROGRAMS
  warns you of such executables (I have no idea how they could be programmed to
  do this --- that is WHY you EXPERIMENT in a TEST directory):  The file will
  simply be "hashed"!  This does not occur in all cases, but it DOES occur with
  TWO specific files I'll bet many of you have:  (1) BRUN41.EXE by MicroSoft,
  bundled with all versions of CompuServe's CSHOW, and (2) GRASPRT.EXE, a
  "GRASP" (.GL) file "animator" from Paul Mace.  There are OTHERS, such as
  MicroSoft's CV.EXE (CodeView --- part of MASM 5.1):  WINDOWS "executables"
  should NEVER be compressed --- this includes Versions 3.0, WIN286 and WIN386.

  Also, you've noticed mention of EXEPACK.  This is a program copyrighted by
  MicroSoft in 1985-86 (probably the FIRST executable file compressor).  This
  program is used on certain executables in some commercial software and the
  EXEPACK.EXE program itself is bundled with some software (MASM 5.1).  The
  purpose of EXEPACK is not clear:  The explanation on Page 322 of "MicroSoft
  CodeView and Utilities Guide" is curt and misleading:  EXEPACK will NOT
  compress executables using overlays.  Anyway, this is NOT a free-standing
  program and is NOT nearly as effective as those mentioned here.  Only
  LZEXE can identify files compressed with EXEPACK and, at your option, re-
  compress them.  DIET and PKLITE do not compress EXEPACK'd executables.
  However, you CAN use UPACKEXE.EXE (w/LZEXE) to un-compress them first, and
  then re-compress them with DIET/PKLITE --- with apologies to M. Bellard.

                              ==================
                              HOW TO USE THEM...
                              ==================

  Obviously, you MUST have the desired utility in your ROOT directory or on
  your PATH.  The following command line syntax is SUGGESTED if you're new
  to this or experimenting:

   ----------------
    TO COMPRESS...
   ----------------

  DIET   -  C:\>diet -o[output filename] [input filename]
                (compresses a COPY of INPUT filename to OUTPUT filename ---
                original is not altered.) [NO space between "-o" and filename]
                NOTE that position of INPUT/OUTPUT filename is REVERSED

  LZEXE  -  (using LZESHELL interface)
            C:\>lzeshell [filename]
                (backup copy of original executable is AUTOMATIC, w/.OLD exten-
                sion. Not necessary to specify ext if .EXE/MUST specify if .COM)

  PKLITE -  C:\>pklite -b -n [filename]
                (create BACKUP file w/.BAK extension [-b] and NEVER compress an
                executable that uses overlays [-n])

   ------------------
    TO UNCOMPRESS...
   ------------------

  DIET   -  C:\>diet -r [filename]
                (Restore file compressed with DIET --- DIET's DOCS call this
                command "Retrieve")

  LZEXE  -  C:\>unlzexe [filename]
                (Uncompress file compressed with LZEXE - using UNLZEXE and
                create BACKUP of compressed file w/.OLZ extension)

  PKLITE -  C:\>pklite -x [filename]
                (eXtract file compressed with PKLITE)

  NOTES: 1. These commands are recommended for use in experimenting with these
            programs --- you are by no means limited to them.  There are others
            included in each program, so read the documentation for proper use.
         2. Remember to DELETE the BACKUP files when you're satisfied with the
            results --- the idea, after all is to MAKE ROOM not USE MORE OF IT.
         3. Note that PKLITE creates BACKUP files with the .BAK extension ---
            you should keep track of these files because it is the SAME ext-
            ension DOS (and some utilities) use --- it could get confusing.

                           ========================
                           OK...WHICH ONE DO I USE?
                           ========================

 Choosing the RIGHT compression method is a matter of personal preference:
 They are ALL GOOD!  PKLITE seems to offer the most due to a variety of factors:
 Excellent, intuitive and SAFE design; the promise of ongoing development; total
 support (for registered users); variety of features, etc.  PKWARE is the outfit
 that has made "ZIP" a household word:  They take their products seriously and
 they DO KNOW something about "compression".  This DOES NOT mean to imply that
 either Mr. Bellard or Mr. Matsumoto takes his product any LESS SERIOUSLY ---
 the quality of BOTH products proves otherwise.  Why pay 46 bucks for a
 product when you can get it for FREE?  Well, SUPPORT is a two-way street:
 Whether we want to believe it or not, SOMEBODY paid for the development of all
 this great software.  Mr. Bellard and Mr. Matsumoto BOTH paid with their time
 and talent:  Considerable, in BOTH cases.  PKWARE also PAID with their time
 and talent, with the slight prospect of recouping these costs through license
 fees.  Nobody works for NOTHING!  I think PKWARE also lent some credence to
 this heretofore obscure "niche" in PC utilities with their entry into the
 "fray" --- something to consider, eh?

                                  ==========
                                  CONCLUSION
                                  ==========

  To answer our original question:  Yes, we get something for remarkably little
  effort.  I was immediately struck by the fact that ALL of the programs are
  well-crafted, possessing common sense and foresight:  They can be very useful
  tools for the average PC user. The companion utilities described in SUPPORTING
  PROGRAMS also deserve quite a hand for their quality and development skill.
  They make life a lot easier for those of us prone to using executable compres-
  sion.  Very thoughtfully programmed stuff that, I'm sure, took considerable
  effort, time and skill.  The mere fact that ALL of this excellent programming
  is available to us, belies the oft-noted selfishness claimed to be "today's
  credo".  IT AIN'T SO!  These folks deserve our respect and thanks!

  In conclusion, it could be stated that "compressing" your executables is an
  idea whose time has come.  You will definitely save disk space and might
  even defer the three to five hundred dollar outlay for ANOTHER disk drive.
  It's worth considering when you have available the utilities discussed here.