|
32 and 64 bit
versions:
ProDelphi supports 32 bit applications
developed with Delphi 5 or better on 32 and 64 bit processors.
ProDelphi64 supports 64 bit applications developed with Delphi
XE2 .. XE8 or Delphi 10 .. 10.4 up to 12.x for 64 bit
processors.
ProDelphi6432 supports the Delphi versions supported of
ProDelphi and ProDelphi64.
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,
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 .
AQTime
(discontinued July 2024):
ProDelphi can be used instead of
AQTime.
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 (Delphi 5 and above) is
possible.
Command line:
Profiling from command line is
possible.
Compiler
versions:
ProDelphi and ProDelphi6432 support
Delphi 5..7, 2005, 2006 (incl. Turbo Delphi) 2007 .. 2010, XE
.. XE8, 10, 10.1 .. 10.4, 11.x, 12.x.
ProDelphi64 supports Delphi XE2 ..
XE8, 10, 10.1 .. 10.4, 11.x, 12.x.
Conditional compilation:
Fully supported. Compiler symbols
and switches are read from the compilers option file
(DOF/Bdsproj/Dproj).
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 sourceforge.net for 'Discover for Delphi').
Cross
platform profiling:
ProDelphi can read units that have
been developped under Kylix (the Linux version of Delphi). It
can handle VCL applications as well as CLX and FMX
applications.
Customer
suggestions:
Many customer suggestions have been
implemented in ProDelphi.
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 comes with a real User
Guide (and not with slim online help). The User Guide is
available in English and German.
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 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 measured separately, also idle times of
some Delphi calls. Idle times are nor included in the runtime.
See list of handled functions in the manual.
Hardware:
ProDelphi supports Pentium and
Pentium compatible processors.
It was tested on following AMD
processors: K6, K6/2, K6/3, Athlon, Athlon XP, Duron, Turion
64 X2, Athlon 64 X2.
It was tested on following Intel
processors: Pentium Overdrive, II, III, IV, Core I5, Celeron,
Centrino, Core I3 and Core I5.
For the profiling session 64 MB RAM
is used additionally by ProDelphi.
History
function:
ProDelphi 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:
Release 1 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.
Industrial
approvement:
ProDelphi was first used to optimize
the SIEMENS -
SCADA-system VICOS RSC 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 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. 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:
ProDelphi measures very accurately.
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. You can easily
check the accuracy of ProDelphi with the
profiler tester .
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 reads the
options and project file (DOF/Bdsproj/Dproj) of Delphi and
automatically scans all directories in the search path + the
directory of the DPR-file.
Object
orientation:
Specially supported by the optional
feature of adding the runtimes of all inherited methods with
the same name.
Example: A method 'LoadFromDisk' calls the method 'LoadFromDisk' of the inherited class. In this case the runtimes of both classes will be added.
Online
(de)activation of measurement:
Measurement can be switched on and
off at the programs runtime, also intermediate results can be
stored online.
Operating
systems:
ProDelphi is compatible to Windows
95/98/ME/NT/2000/XP/Server 2003/Vista/7/8/10/11.
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 shows its outstanding quality: by a very low
measurement overhead. All measurement routines are extremely
optimized.
Packages:
Package profiling is supported for
Delphi 2005 or better.
Post Mortem
Review:
Instead of vaccinating
(instrumenting) the sources with statements for runtime
measurement, it can be vaccinated with statements for
exception trapping. In case of an exception occuring the call
stack is stored into a file inclusive the name of the
exception. Optionally the program can be traced, see Tracing.
The program can be delivered in an
instrumented form to a customer. This could be done in case of
sporadic exceptions. The source code does not have to be given
to the customer (together with the Delphi-IDE).
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 is a source code instrumenting profiler.
Source instrumenting versus machine code instrumenting has the
big advantage, that at the best position possible a time stamp
can be taken: at the start and the end of the procedure body.
No original code of the measured procedure has to be replaced
by a branch to the measurement procedure and stored and
executed there. The normal instruction flow (nearly identical
as without profiling) is kept. 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-/CLX-/FMX- 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.
See also comparison between the three profiler types .
Programming-API:
Measurement can be switched on and
off at runtime. Intermediate results can be stored on disk.
Security:
ProDelphi inserts statements into
the source files. To prevent a loss of code in case of power
failure, the sources is saved before instrumentation
(filename_sav). When the instrumentation is processed
sucessfully, the saved file is deleted.
Because 'shit happens' all source code files should be saved
before profiling (e.g. with WinZip).
Setup:
ProDelphi is delivered with an 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 versions:
Delphi 5 .. 6 (up to Windows XP), 7,
2005, 2006 (incl. Turbo Delphi) 2007 .. 2010, XE .. XE8, 10,
10.1 .. 10.4, 11.x, 12.x.
Supported
libraries:
VCL, CLX (Delphi 6 and 7) and FMX (Delphi XE2 .. XE8, 10, 10.1
.. 10.4, 11.x, 12.x only).
Switching off
of all measurement:
Simply done by deleting a compiler
symbol and recompilation.
Threads:
ProDelphi 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).
Tracing:
An option of Post Mortem Review is
tracing. ProDelphi can insert trace statement at procedure
entry and exit points. For using this function DebugDelphi
needs to be installed and started. The version of DebugDelphi
for 32 bit applications is free and can be downloaded from
this site.
Upgrading to
Professional Version:
If you need ProDelphi for a larger
project and 20 measured procedures are not enough for you, you
can order the professional version via Digistore24 software
distribution.
Updates of
Professional Version:
Updates of the Professional Version
due to bugfixes are free.
Upgrades of the Professional Version due to new versions of
Delphi or new features of ProDelphi 32 bit version are
available for 32.50€.
Upgrades from any version to the 64 bit version (ProDelphi64)
is available for 37.50 €.
Upgrades
from any version to the 32 and 64 bit version (ProDelphi6432)
is available for 60.00 €.
Selectable UI languages:
English, German, Dutch, French or Italian, Online
changeable.
Viewing of
measurement results:
Results can be either displayed in
CPU-cycles or in a variable time format. On a pentium with
1000 MHz the smallest time unit is 0.001µs (= 1 ns).
With the built-in viewer and browser (navigator):
Differences between Freeware- and Professional versions of ProDelphi: