-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathpart2.html
More file actions
104 lines (92 loc) · 3.06 KB
/
part2.html
File metadata and controls
104 lines (92 loc) · 3.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<HTML>
<HEAD>
<title>Programming Pearls, Part 2: Performance</title>
</HEAD>
<BODY BGCOLOR=#ffffff>
<a href="index.html">
<img alt="book cover" ALIGN=right hspace=20 src="pp2e.jpg">
</a>
<h1>Performance
<br>(Part II of
<br><font color="#a52a2a">Programming Pearls</font>)
</h1>
<P>
A simple, powerful program that delights its users and
does not vex its builders -- that is
the programmer's ultimate goal and
the emphasis of the five previous columns.
<P>
We'll turn our attention now to one specific aspect
of delightful programs: efficiency.
Inefficient programs sadden their users with
long waits and missed opportunities.
These columns therefore describe
several paths to performance.
<P>
Column 6 surveys the approaches and
how they interact.
The three subsequent columns discuss three methods
for improving run time,
in the order in which they are usually applied:
<ul compact>
<p><li type=disk>
<a href="bote.html">Column 7</a>
shows how ``back-of-the-envelope'' calculations
used early in the design process can ensure that
the basic system structure is efficient enough.
<p><li type=disk>
<a href="sketch08.html">Column 8</a>
is about algorithm design techniques that
sometimes dramatically reduce the run time of a module.
<p><li type=disk>
Column 9 discusses code tuning,
which is usually done late in the implementation of a system.
</ul>
To wrap up Part II,
Column 10 turns to another important aspect of performance:
space efficiency.
<br>
<P>
There are three good reasons for studying efficiency.
The first is its intrinsic importance in many applications.
I'm willing to bet that every reader of this book
has at some time stared in frustration at a monitor,
wishing fervently that the program were faster.
A software manager I know estimates that
half her development budget goes to performance improvement.
Many programs have stringent time requirements,
including real-time programs,
huge database systems and
interactive software.
<P>
The second reason for studying performance is educational.
Apart from practical benefits,
efficiency is a fine training ground.
These columns cover ideas ranging from the
theory of algorithms to common-sense techniques
like ``back-of-the-envelope'' calculations.
The major theme is fluidity of thinking;
Column 6, especially,
encourages us to look at a problem from
many different viewpoints.
<P>
Similar lessons come from many other topics.
These columns might have been built around
user interfaces, system robustness or security.
Efficiency has the advantage that it can be measured:
we can all agree that one program
is 2.5 times faster than another,
while discussions on user interfaces, for instance,
often get bogged down in personal tastes.
<P>
The most important reason for studying performance
is described best in the immortal words of the 1986 film
<i>Top Gun</i>:
``I feel the need ... the need for speed!''
<p>
<FONT SIZE=1>Copyright © 1999
<B>Lucent Technologies.</B> All rights reserved.</FONT>
<font size=-2>
Mon 9 Aug 1999
</BODY>
</HTML>