home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C!T ROM 2
/
ctrom_ii_b.zip
/
ctrom_ii_b
/
PROGRAM
/
PASCAL
/
PERFORM
/
PERFBOOK
< prev
next >
Wrap
Text File
|
1993-08-25
|
4KB
|
99 lines
Borland Pascal Performance Optimization
drs. Robert E. Swart
P.O. Box 799
5702 NP Helmond, The Netherlands
FidoNet: 2:281/256.12
Internet: bobs@dragons.nest.nl
Push Borland Pascal to its limits. This book is about performance
optimizations for programs created with Turbo or Borland Pascal.
Several techniques are described to enhance the speed and reduce
the size of your applications. The book is packed with numerous
examples demonstrating the power and flexibility of Borland
Pascal, and enhancing the performance in many ways. In addition to
strategies for speed and size optimization, this book contains an
in-depth discussion of important topics for developing optimized
applications for Objects, DPMI and Windows. The book and disk
contain several examples of high performance code, tools and
applications written in Borland Pascal. The book will be about 250
pages, while the disk will contain all source code and several
tools.
There is a difference between Turbo Pascal programs that work, and
Turbo Pascal programs that work fast! The process of performance
optimization for speed is divided into four steps: finding bottle-
necks, using more efficient algorithms & datastructures, using
more efficient language constructs, and finally using BASM code
or InLine macros.
Finding bottle-necks in your code can be done using tools like
Turbo Profiler. Three other timing methods are implemented in
Pascal: one using the System Clock, one using the technique of
Reps Timer (timing the number of executions per clock-tick), and
one using the TPTimer unit from Turbo Power. All methods will be
used throughout the rest of the book for performance measurings.
A better algorithm or datastructure can really make the
difference. We will examine general and optimized algorithms for
collections (Stack, Queue, List, Binary Tree, AVL-Tree, B-Tree),
searching (Linear, Binary, Mathematical) and sorting (Bubble,
Merge, Quick and non-recursive Quick-sort).
Several programs or routines can be speed up simply by using the
most efficient language construct for the specific problem. We
will see examples of SetTexBuf, BlockRead and Streams, Records
and With, Pointers vs. Arrays, Functions vs. Procedures, IEEE
floating points and emulation vs. Reals, and Var vs. Value or
Const parameters.
Sometimes we must descend to the lowest level and write BASM code
or InLine macros. The difference between BASM and InLine macros
will be described. We will see examples of fast Strings, Sets,
and several other routines using advanced assembly language
optimization techniques.
Size optimization involves code size, data size, stack and
dynamic memory usage, and overall .exe size. Techniques for
optimizations for size rather than for speed are given.
We will see why we must avoid DPMI mode-switches to real mode,
and how we can obtain that goal. Furthermore, some special
considerations are given when developing DPMI, 32-bits DPMI or
even Pentium applications.
We will see why virtual functions, constructors and destructors
sometimes cost a lot of time, but when used properly can be of
much use and benefit to an application. When developing
multitasking applications for Windows there are several special
techniques in order to gain more speed.
Several tools will be discussed, among which are DumpProg (by DJ
Murdoch and Jeroen Pluimers), TPTimer (by TurboPower) and Stack70
(by Wilbert van Leijen). These tools also can be found on the
accompanying disk.
Reservations are available until December 31, 1993 for a special
early-bird price of hfl. 69,95.
After December 31, 1993 book will be sold for hfl. 99,95
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-X-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
[] Yes, I want an early-bird discount for the first edition of
this book. Bill me for hfl. 69,95 as soon as the book is
available (early 1994)!
Name: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Address: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
City: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Zip: _ _ _ _
Signature: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Send early-bird coupon to P.O. Box 799, 5702 NP Helmond.