home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / PASCAL / ALLSWAGS.ZIP / SWAGG-M.ZIP / MISC.SWG / 0149_Code Optimization Techniques.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-05-26  |  1.7 KB  |  43 lines

  1. {
  2.    The following text was written by Erik Turner (eturner@ccd.harris.com)
  3.  
  4. "Here are some suggestions for reducing the size of your code.  I needed to
  5. do this because I was trying to reduce the size of a TSR to bare minimum.
  6.  
  7. A) Remove all Write,Writeln,Read,Readln statements.  Replace with assembler
  8.    procedures to call DOS (saves about 3K).
  9.  
  10. B) Inspect your code for any string variables.  Try to use as few as possible
  11.    and make them only as long as needed.
  12.  
  13. C) Turn off range checking.  This adds code overhead to every array reference.
  14.  
  15. D) Turn off stack checking.  This adds code overhead to each procedure call.
  16.  
  17. E) Insure that your heap is as small as possible (preferably zero).
  18.  
  19. F) Insure that your stack is as small as possible (do not use large procedure
  20.    local variables).  It is possible for carefully written BP programs to
  21.    use only 1024 bytes (or less) of stack space.
  22.  
  23. G) Do not use real numbers unless your program requires a math coprocessor.
  24.    Insure that the Real and 8087 emulation libraries are not being linked in.
  25.  
  26. H) If you have any large data structures, consider encoding the data so that
  27.    it takes less space (possibly at the expense of execution speed).  
  28.    For example, instead of 
  29.      Array[0..31] of Boolean    (32 bytes)
  30.    use
  31.      Longint                    (4 bytes)
  32.  
  33. I) Do not use CRT unit.  Replace with calls to DOS routines (see A).
  34.  
  35. J) Avoid objects with virtual methods.  Really avoid objects from any of 
  36.    Borland supplied units.  These objects come with lots of baggage in the
  37.    form of extra code and data fields.
  38.  
  39. K) Combine all units into main program and enable near calls.  This will
  40.    reduce overhead by shorter calls and the 8(?) bytes of overhead per unit."
  41. }
  42.  
  43.