[net.ai] Program efficiency

hes@ecsvax.UUCP (Henry Schaffer) (04/28/85)

 
<> We've had alot of discussion on assembler vs. HOL, and considerations
of both speed and memory efficiency.  Some of the arguments have arisen
because we are not always interested in optimizing the same things.  I
have recently gone through a book which deals with many of these issues.
This book discusses a number of situations in which it is desireable to
trade off good structure to gain an improvement in speed or space used,
and then goes through many techniques to gain these improvements (and to
trade them off against each other.)  A total of 27 "Rules" are given, and
explained at length including examples and timings, in the following
categories:
 
Modifying Data Structures
    Trading Space-for-time- 4 rules
    Trading Time-for-space- 2 rules
Modifying Code
    Loops- 6 rules
    Logic- 5 rules
    Procedures- 5 rules
    Expressions- 5 rules
 
To give an idea of the types of rules- here are the first 3 Loop rules:
1. Code motion out of loops   2. Combine tests	 3. Loop unrolling
 
The book is:  WRITING EFFICIENT PROGRAMS by Jon Louis Bently 1982
Prentice-Hall, Inc., Englewood Cliffs, NJ  170 pages
 
--henry schaffer  n c state univ