|
Last
Update of this page: April/3/2002
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.
Cyclic storage of measurement
results:
Measurements can be stored cyclically
(activated by online operation window). With the viewer one be scrolled
through the different measurements.
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.
Reports:
The built in viewer can print the measurement
results on any windows printer. This enables the user to document his success
in optimizing.
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: