|
|
Last Update of this page: September/23/2006
Action controlled
measurement:
Measurement can be switched on and off
dynamically by entering and finishing a procedure or a function. This
can be activated user friendly by a selection form (for fast changing
the activation points), by special comments and by API-calls in the
source files (if permanently the same points shall be used for a long
period).
All-in-one-profiling:
With one profiling session the number of
calls for a method (call count profiling), the average runtime
of
a method (function profiling), function coverage
profiling
and emulation profiling can be performed. When developing
ProDelphi(Net), the philosophy was to develop a high precision
profiling tool (thats why
it is neither a sampling nor a machine code instrumenting
profiler) and to produce a minimum of overhead (that's why there is no
line profiling mode). See also Profiler type.
Call graphs:
A graph shows by who a procedure is called
and which procedure it is calling. It also shows how often this
happened
an the time consumed when processing these calls. By clicking on the
procedure symbol a quick following the execution path of the
application as well as opening the approrpriate source file in the
editor is possible.
Command line:
Profiling from command line is possible.
Compiler versions:
ProDelphi.Net supports Delphi 8, 2005,
2006 and Turbo Delphi for .Net.
Conditional
compilation:
Fully supported. Compiler symbols and
switches are read from the compilers project file.
Also symbols and switches in the source
file are processed. They are valid for the processed file and included
files only.
Coverage profiling:
A browser can display all methods which
were not called. (For a line-by-line coverage tool, have a look at my
link page).
Cross platform
profiling:
ProDelphi.Net can read units that have
been developped under Kylix (the Linux version of Delphi). It can
handle VCL
applications as well as WinForm applications.
Customer suggestions:
Many customer suggestions have been
implemented for ProDelphi and are included in ProDelphi.Net.
Cyclic storage of
measurement results:
Measurements can be stored cyclically
(activated by online operation window). With the viewer it can be
scrolled through the different measurements.
Documentation:
ProDelphi.Net comes with a real User Guide
(and not with slim online help).
Emulation profiling:
The measured results can be recalculated
for a faster or slower PC. So it's e.g. not necessary to have a
customers
PC for the development process. By entering a speed constant and the
number of MHz'es the other PC can be emulated. Of course the results
are not as accurate
as they are with measuring on the original equipment.
Exclusion of parts of the program from measurement:
Directories:
Granularity:
ProDelphi.Net measures in CPU-cycles. The smallest measurable unit is 1 CPU-cycle.
This means that on a Pentium with 1000 MHz the smallest measurable
duration is 0.001 µs = 1ns.
Handling of idle
times:
Idle times produced by some Windows-API
calls are not measured, also idle times of some Delphi calls. See list
of handled functions in the manual.
Hardware:
ProDelphi.Net supports Pentium and Pentium
compatible processors.
It was tested on following AMD processors:
K6/2, Athlon
It was tested on following Intel
processors: Pentium IV and XEON.
For the profiling session 32 MB RAM is
used additionally by ProDelphi.Net.
History function:
ProDelphi.Net comes with a built-in
history function. The viewer shows by a colored grid, which functions
got faster
and which got slower since the last storing of results into the history
file. By a mouse click on a result line of the viewers grid, the time
from the
history file is displayed for the selected procedure. Multiple history
files
can be stored.
History of ProDelphi:
ProDelphi.Net originates from ProDelphi.
Release 1 of ProDelphi was issued 9/97, Release 3.1 with granularity of
1 CPU cycle published 5/98 on Torry's Delphi pages. Permanent
improvement
since then, many customer suggestions implemented. ProDelphi.Net
release
1.0 was distributetd first with Delphi 8 for .Net companion CD.
Industrial
approvement:
ProDelphi was first used to optimize the
SIEMENS - SCADA-system VICOS P500 for the projects Metro Guang
Zhou,
Shen Zhen and Sixth Railways in China. Other projects followed later
(e.g.
Melbourne).
Integration into the
Delphi IDE:
If ProDelphi.Net is installed with the
setup program, it is automatically integrated into the Delphi tools
menu. Also
an interface to Delphi is installed, so that a unit can be opened in
Delphi
by clicking with the mouse into the viewer window of ProDelphi.Net.
The editor will display the measured procedure after that..
Libraries:
In the professional mode the user part of
libraries can be profiled.
Limitations:
There are no limitations regarding size or
accuracy: Even the smallest procedures are measured accurate, there is
no minimum size required for a procedure to be measured.
Line profiling:
Line profiling is not supported. This has
two reasons: Counting runtimes for lines changes the instruction
processing of the CPU so much, that no useful results can be expected.
Counting runtime for lines also slows down a program too much.
Local Procedures:
Can optionally be excluded from
measurement..
Measuring parts of
procedures:
By special comments extra measurement
points inside procedures can be defined.
Measuring runtimes
in
DLL's:
Fully supported. Program and DLL can be
measured simultaneously.
Measurement accuracy:
The measurement overhead is automatically
removed from the measured
times. A
sophisticated algorithm calculates the runtime used for measurement at
initialization
time. Nested function calls are no problem for ProDelphi.Net.
Measurement results:
The measured durations are displayed
either in CPU-Cycles or in a variable time format. Following time
formats are automatically selected:
Multiple profiling
directories:
Fully supported. ProDelphi.Net reads the
project file of Delphi and automatically scans all directories in the
search path + the directory of the DPR-file.
Online operating the
measurement:
Measurement can be switched on and off at
the programs runtime, also results can be stored online.
Operating systems:
ProDelphi.Net is compatible to Windows
2000, XP and Server 2003. All functions are available on both platforms.
Optimization option:
The optimization of the Delphi compiler is
automatically deactivated if the user forgets this. This guaranties
high
measurement accuracy.
Overhead:
Measurement of runtime costs measurement
overhead. This is another point (like accuracy) where ProDelphi.Net
shows
its outstanding quality: by a very low measurement overhead. All
measurement
routines are extremely optimized.
Printing reports:
The measurement results can be printed on
any Windows printer (inclusive graphics). The report can either be
printed in full color mode or in color save mode (black, absolutely
necessary parts in color, due to the high costs for color ink
cartridges).
Professional version:
See upgrade to professional version.
(See also 'Differences between Freeware- and
Professional Version').
Profiler
type:
ProDelphi.Net is a
source code instrumenting profiler. Source
instrumenting versus machine code
instrumenting
has the advantage, that the normal instruction flow is nearly
identical
as without profiling. This is one of the reasons for ProDelphi's
outstanding
accuaracy.
Another advantage of a source
instrumenting profiler is, that idle times (caused e.g. by opening a
message box) can
be handled. Before calling the Windows- or VCL-function, the
measurement
is deactivated.
The only disadvantage of a source
instrumenting profiler is that the source files are changed by the
vaccination (instrumentation) process. To avoid the risk of impacting
the sources, they should be saved before.
Sampling profilers: with a low sampling rate small procedures can not be measured, with a high sampling rate the profiled program has to be interrupted very often, what means, that the runtime behaviour of the tested program is changed very much. Sampling profilers also cannot handle idle times.
Programming-API:
Measurement can be switched on and off at
runtime. Intermediate results can be stored on disk.
Security:
ProDelphi.Net inserts statements into the
source files. If this process has a bug or in case of power failure,
the sources might be destroyed. It is strongly recommended to save all
source code files before profiling (e.g. by WinZip).
Setup:
ProDelphi.Net is delivered with a easy to
use setup program. It copies all files into the appropriate
directories, integrates ProDelphi into the Delphi tools menu and
creates an entry in the Windows
list of programs (Start menu / Programs).
Supported Delphi
for .Net versions:
Delphi 8, 2005, 2006 and Turbo Delphi.
Supported libraries:
VCL and WinForms.
Switching off of all
measurement:
Simply done by deleting a compiler symbol
and recompilation.
Threads:
ProDelphi.Net has special settings for
single threaded applications (low overhead, extremly accurate) and for
multi threaded applications (medium overhead, medium accurate). A
special option allows
to exclusively measure the main thread only (Professional version only).
Upgrading to
Professional Version:
If you need ProDelphi.Net for a larger
project and 20 measured procedures are not enough for you, you can
order the Professional Version via ShareIt registration
service.
Update of
Professional Version:
Updates due to bugfixes are free.
Upgrades due to new versions
of Delphi or new features of ProDelphi.Net are available for
15.- €.
Viewing of
measurement results:
Results can be either displayed in
CPU-cycles or in a variable time format. On a pentium with 500 MHz the
smallest time unit is 0.002µs.
ProDelphi.Net has TWO possibilities of
viewing the measured runtimes:
Differences between Freeware- and Professional Version: