|
Last Update of this page: June/27/2004
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 profilingand
emulation profiling can be performed. When developing
ProDelphi.Net, the
philosophy was (and is) 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.
Compiler versions:
ProDelphi.Net supports Delphi 8 for .Net.
Upgrades
for future windows versions of Delphi for ,Net will be cost free.
Conditional
compilation:
Fully supported. Compiler symbols and
switches
are read from the compilers project file (bdsproj).
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 VCL and Winform
applications.
Customer suggestions:
Many customer suggestions have been
implemented
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 measure 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, K6/3, Athlon, Duron
It was tested on following Intel
processors:
Pentium III, IV and Celeron.
It was tested with PC66, PC100 and PC2700
memory.
For the profiling session 64 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.
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. 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.
Measurement accuracy:
ProDelphi.Net measures very accurately.
The measurement
overhead is automatically removed from the measured times. A
sophisticated
algorithym 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
options
from the project file (bdsproj) 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 and XP.
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:
After downloading the professional
version, it
runs in the Freeware mode. After entering the registration information
it
automatically runs in the Professional mode (see also 'Differences
between Freeware- and Professional mode').
Profiler
type:
ProDelphi.Net is a
source code
instrumenting profiler. Source
instrumenting
versus machine code instrumenting has the
big
advantage 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.Net into the Delphi tools menu and creates an entry in the
Windows
list of programs (Start menu / Programs).
Supported Delphi
versions:
Delphi 8
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:
If you need ProDelphi.Net for a larger
project and 20 measured procedures are not enough for you, you can
order the key to upgrade
to the professional version via ShareIt registration service. This key
is
valid for all future versions of ProDelphi.Net (Buy
one - get many).
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.
Measurement results can be viewed by
Differences between Freeware- and Professional mode: