ProDelphi.Net - Features

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:

Units or Include files: Parts of a unit or an include file: Automatic exclusion: Freeware version:
After downloading ProDelphi.Net, it runs in the Freeware mode. After ordering a registration, it is possible to download a Professional version of ProDelphi.Net. After entering the registration information it will run in the Professional mode (see also 'Differences between Freeware- and Professional mode').

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:

For all methods the time for a single call and the runtime sum is displayed (also additionally with included child times).

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

The viewer can automatically exclude methods with a very low runtime from result displaying.


Differences between Freeware- and Professional mode: