|
Last Update
of this page: June/22/2001
Action controlled
measurement:
Measurement can be
switched on and off dynamically by entering and finishing a procedure or
function. This can be activated user friendly by a selection form (for fast
changing the activation points) or by special comments or API-calls in the
source files (if permanently the same points shall be used for a long period).
Activation by API-calls was availlable since release 3.0 already but was and is
not very user friendly.
Compiler
versions:
ProDelphi supports
Delphi 2/3/4/5/6.
Conditional
compilation:
Fully supported.
Compiler symbols and switches are read from the compilers option file
(DOF).
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).
Customer
suggestions:
Many customer
suggestions have been implemented in ProDelphi in the last versions.
Documentation:
ProDelphi 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 measure in CPU-cycles. The smallest measurable unit is 1 CPU-cycle. This means
that on a Pentium with 500 MHz the smallest measurable duration is 0.002
µs
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.
Homepage of ProDelphi:http://www.prodelphi.de/
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.
Industrial
approvement:
ProDelphi was used
to optimize the SIEMENS - SCADA-system VICOS
P500 for the projects Metro Guang Zhou, Shen Zhen and Sixth Railways in
China.
Integration into the Delphi tools
menu:
If ProDelphi is installed
with the setup program, it is automatically integrated into the Delphi tools
menu.
Limitations of
size:
There's no size limitation for a method to be profiled
!
Local
Procedures:
Fully
supported.
Measuring programs with
threads:
Fully supported, but
with less accuracy than for single threaded applications.
Measuring runtimes in
DLL's:
Fully supported
Measurement
accuracy:
ProDelphi 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. You can easily check the accuracy of
ProDelphi by downloading the profiler tester. It consists of two programs: One
measures automatically the run-time of a few procedures and displays the result.
The second program uses the same procedures without measuring, it has to be
profiled. The user can compare the results of the measurement with ProDelphi and
those of the self measuring program.
The accuracy is the same for very small ore very large methods: measurement differs only a few cycles from the not measured method !
Measurement
results:
The measured durations
are displayed either in CPU-Cycles or in a variable time format. Following time
formats are automatically selected:
Object
orientation:
Specially
supported by the feature of adding the runtimes of all methods with the same
name (if the used object is the same).
Example: A method 'LoadFromDisk' calls the method
'LoadFromDisk' of the inherited class. In this case the runtimes of both classes
will be added.
Online operating the
measurement:
Measurement can be
switched on and off at the programs runtime, also results can be stored online.
This speeds up the opimization process.
Operating
systems:
ProDelphi is
compatible to Windows 95/98/ME/NT4 and Windows 2000.
Overhead:
Measurement of runtime costs measurement
overhead. This is another point, like measurement accuracy, where ProDelphi can
show its outstanding quality.
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. The program can be delivered in an instrumented form to a customer.
Just in case of sporadic exceptions this is very comfortable and the source code
does not have to be delivered together with the Delphi-IDE.
Professional
mode:
ProDelphi can be executed
in Freeware or
Professional mode.
Profiler type:
ProDelphi is a source instrumenting profiler.
Source 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
profiler internal code outside the procedure is called before taking the time
stamp. No profiler code has possibly to be copied into processor cache before
taking the time stamp (which destroys the accuracy). The normal instruction flow
(nearly identical as without profiling) is kept. This is one of the reasons for
ProDelphi's outstanding accuaracy.
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.
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. 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 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).
Switching on and off of
measurement:
Simply done by
deleting a compiler symbol and recompilation. At runtime this is also possible
by the online operation window. Also intermediate measurement results can be
stored at runtime (see also Programming-API).
Upgrading to professional
mode:
If you decide to use
ProDelphi, you can download any upgrade or bugfix from my homepage. If you need
ProDelphi for a larger project and 30 measured procedures are not enough for
you, you can order a registration key and install it. After that ProDelphi is
executed automatically in the professional mode. The registration key is
available via ShareIt registration service.
Updating
policy:
Updates or upgrades are
generally free, also if the upgrading is done to apply to a new version of
Delphi for windows (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.
ProDelphi has THREE possibilities of viewing the measured
runtimes:
Y2K compliance:
ProDelphi is fully Year 2000 compliant
Differences between Freeware and Professional mode: