ProDelphi 8.x ------------- Additional remarks which are not in the description or might be overlooked: - Don't use the optimization switch of the compiler, in some cases the compiler produces wrong code ( this has nothing to do with ProDelphi ), and second the measurement results are less correct. - The best results concerning correctness are got if the profiled program does not run under the IDE. Known Bugs: - Typing of procedural variables or definitions of procedual variables can not be split into two lines. Example: TYPE TFunc = FUNCTION : Integer; // This is ok TFUNC = FUNCTION : Integer; // This is not recognized VAR provar : FUNCTION : Integer; // This is ok fuvar : FUNCTION : Integer; // This is not recognized Changes made in ProDelphi Version 8.0 (04/27/2000) - Dynamical switching measurement on and off enhanced: . Instead of calling the API-functions ProfActivate and ProfDeactivate a special comment can be placed before the method with which the measurement should be started (//PROFILE-ACTIVATE). The maximum number of activation comments is unlimited. . At the end of the profiling process a dialog window is opened in which activating methods can be selected (if dynamcic activation is wanted). Between different activation methods can be switched without a new profiling process to be executed. The maximum amount of activation methods selected interactiv is 16. . Activation by inserting //PROFILE-ACTIVATE and selecting in a dialog window can be mixed. - Measurement an start options do not afford a new profiling process. - Measurement results can be emulated for another PC than that one on which the measurements have been done. So easily a slower or faster customers PC can be emulated. This saves the installation of the complete IDE on the customers equipment. Of course an emulation has a lower accuracy than a measurement done with the original equipment. - Profiling log added - Freeware version only: If more than 30 procedures are measured, the the runtime of all those procedures that are not displayed is summarized and displayed. - Post mortem review enhanced: . In a case of an exception the name of the exception is given, . Handling of recursively called functions improved. Changes made in ProDelphi Version 7.62 (04/17/2000) - Two or more entries $(Delphi) in the units search path caused a profiling error when after $(Delphi) either \Lib or \Source was noted. - Processing of $IFDEF, $IFOPT, etc. was case sensitive (needed to be in capital characters). - $IFDEF in a Uses-statement caused errors. - Units search path is editable now (due to a customers request). - Amount of profilable method increased from 16000 to 32000 (due to a customers request). Changes made in ProDelphi Version 7.61 (04/06/2000) - Pathname problem fixed Changes made in ProDelphi Version 7.6/7.5 (03/25/2000) - browsers tuned (7.6) - parser bug fixed (7.5) - handling of the function MsgWaitForMultipleObjects(Ex) corrected(7.6) Changes made in ProDelphi Version 7.4 (02/27/2000) - Coverage Profiling on a procedural base: A browser displays all those methods which were not called. - Accuracy for measurement of pure Assembler procedures increased (professional version only) Changes made in ProDelphi Version 7.3 (01/15/2000) - Enhanced accuracy of measurement, especially for nested procedures. - Optimization is automatically switched off if the user forgets to uncheck the optimization switch. This prevents crashes of the testee and guaranties a high accuracy measurement. - Professional version can measure 16000 methods now (before 10000). - Bugfix: The $IFOPT compiler directive was not processed. - Bugfix: Example program displayed wrong time with some Intel processors. Changes made in ProDelphi Version 7.2 (11/21/1999) - Bugfix: Setup corrupted the Delphi tools menu if already more than nine tools existed. Uninstall deleted one entry too much in the tools menu, if ProDelphi was not the last installed tool. - ProDelphi can now process relative pathnames. Changes made in ProDelphi Version 7.1 (11/03/1999) - Bugfix: Profiler could not be executed under Windows 95A. Changes made in ProDelphi Version 7.0b (09/28/1999) - Bugfix: The Delphi demo sources could not be profiled (Error message: Path error). - Files in and below the Delphi LIB and SOURCE directory are excluded from profiling Changes made in ProDelphi Version 7.0 (09/26/1999) - Additions for Delphi 5 - History window corrected: It displays '---' for the time now, if no times for a method are not stored in the history file. Before the times of the actual run were displayed. Changes made in ProDelphi Version 6.7 (09/19/1999) - SetUp program corrected: Administrator rights for Windows NT not necessary anymore. - Integration into Delphi 2 tools menu fixed. - Integration into Delphi 2/3/4 tools menu enhanced. - Viewer enhanced for use with large screen fonts. - Some changes done for use with Delphi 5 (not tested yet). Changes made in ProDelphi Version 6.6 (08/24/1999) - History function: Comparing the actual runtime by mouse click with a preceding one, colored grids show which method got faster, which slower. - Search path can be longer than 255 characters now. - Documentation enhanced: hints for optimization and excact measurement. - Addings for Delphi 5 done (not tested yet). Changes made in ProDelphi Version 6.5a/b/c/d/e (08/15/1999) - Bugfix concerning wrong output directory for 2 profiler internal files (6.5a) - Incompatibility with the tool Arabella (ProDelphi used the same filenames)(6.5b) - Spaces in filenames are accepted now (6.5c) - Sorting of the detailed results causeD displaying wrong times (if the filter option to exclude methods with very small runtimes was used).(6.5d) - SetUp-program fixed, install didn't insert ProDelphi into the tools menu and uninstall didn't delete it. (6.5d) - Problems with profiling assembler procedures solved (professional verion) (6.5e) - With Windows 95a and partition sizes > 2 GB the checking for enough free disk was malfuntioning (6.5e) - For security reasons, the Delphi LIB-directory is not profiled anymore (6.5e) - Example program corrected: the displayed number of CPU-Cycles were correct but the displayed times were correct only on a PC with 233 MHz (estimation of CPU-frequency was missing) (6.5c) - Example program enhanced to fit to the higher accuracy of ProDelphi: smallest unit of time is now 0.001 micro second. (6.5c) - Display format of example program changed to the style of ProDelphi. (6.5c) Changes made in ProDelphi Version 6.5 (07/22/1999) - Bugfix: rounding error - Multiple directories can be profiled now - DOF-file entries are used by ProDelphi now - Viewer enhanced: smallest displayed time unit now 0.001 micro second, Display format made better readable. Changes made in ProDelphi Version 6.4 (06/03/1999): - Bug fix: Setup aborted installation procedure when running under Win95a or Win95b. No such problems occured under Win95c or WinNT 4.0. I hope it also runs under Win98. Release of Setup program is now V2.0. Changes made in ProDelphi Version 6.4 (05/30/1999): - Bug fix: Updating the list of files before profiling, corrected following mistake: If a file was copied to the profiling directory and ProDelphi was started, this file was not profiled. - Integration of ProDelphi into the Delphi Tools menu - Comfortable Setup program included now (V1.0) - Example programs included Changes made in ProDelphi Version 6.3a (05/16/1999): - Bug fixed: Crash could occure in Local Procedures (or wrong result) - Measurement not correct: 1 CPU-Cycle to much measured Changes made in ProDelphi Version 6.3 (05/12/1999): - Freeware and Professional version: * Automatic reading of defined compiler symbols and switches from the DOF-file - Freeware version: * number of measured procedures now 30 (before 20) * measuring of local procedures now possible * counting time of inherited methods for calling method possible now - Professional version: * Profiling pure assembler procedures. Changes made in ProDelphi Version 6.2a (04/10/1999): - Parser-bug concerning class variables fixed. Changes made in ProDelphi Version 6.2 (04/05/1999): - Conditional compilation supported now, this means that IFDEF/IFNDEF- statements are evaluated now. - Enhancement of the viewer: Sorting of the results in the detail window after every possible criteria (alphabetical, procedure runtime, procedure runtime sum, procedure runtime incl. child time, etc. etc). - Browser added to the viewer. - 3 more Windows- API functions which set the program into idle status are handled now (no idle time measuring). - Memorises important profiling options. - Warning to save source files before profiling displayed now. - Minor sorting bug fixed. - Parser bug concerning nested local procedures corrected. - Upgrading to professional version now by Serial Number. This means a better customer service. Just look at my homepage, if there is a new version, just download it, it runs with your serial number. Attention: Delete old *.PAS, *.DFM and *.DLL files of ProDelphi if you are upgrading from an older version of ProDelphi. Changes made in ProDelphi 6.1 (03/07/1999): - The viewer was enhanced, the Detail-window can be enlarged until full screen. Making the viewer windows smaller, results in hiding unimportant parts of the informations (not for Detail-window), so that the window can be made much smaller. Some windows have got a splitter, so that the window can be made smaller. The end of Unit-, class- and procedure names are no longer cut off after 25 characters (space for 40 characters availlable now). - Parser bug concerning pure assembler procedures corrected. - Calibation procedures are in a DLL now (ProfCali.DLL). - Additional Windows- and Delphi- API functions which set the program into idle status are handled now (no idle time measuring). - Instead of DCU-files as interfaces to the DLL's, now PAS-files are delivered. This has the advantage that extensions can be made by the user of ProDelphi. Changes in those units are made on own risk. This concerns mainly API- functions that cause setting the program into an idle state. - Documentation enhanced. Changes made in ProDelphi 6.0 (02/12/1999): - DLL-Support was enhanced: Now it is possible to profile program and DLL's simultaneously (or separetely as in version 5.3) - Read-Only files are either not profiled now or the Read-only attribute is automatically deleted. - Documentation corrected and completed. - Measuring bug concerning Application.ProcessMessages, Application.HandleMessage, DispatchMessage, Sleep and SleepEx corrected. - Parser bug concerning //PROFILE-NO without //PROFILE-YES corrected. - Parser bug concernig key words ASSEMBLER, FORWARD and EXTERNAL corrected. Changes made in ProDelphi 5.3 (12/20/1998): - DLL-Support added It is not described in the documentation yet. I've made a little example to show, how a DLL is measured. Unzip the files in DLLSUPP.ZIP and read the comments in the sources. It is quite simple. Changes made in ProDelphi 5.2 (12/18/1998): - Parser-bug concerning tabs in function or procedure statements corrected. - Parser-bug concerning BEGIN / END in variable names, - Viewer-bug corrected: If more than one measurement run was made (using the Append-button in the on-line operation window) and one or more procedures were never used, the procedure names from the second run on were wrong and so not usable. Changes made in ProDelphi 5.1 (11/22/1998): - Parser-bug concerning Application.ProcessMessages and DispatchMessages corrected - Sleep and SleepEx is treated now. Changes made in ProDelphi 5.0 (11/15/1998): - Inserted profiling statments are now partly in Assembler. This results in less measurement overhead and a better measurement accuracy (in my test program results of the measured program had an accuracy of +- 1 CPU-cycle on AMD K6. Results on Pentium without MMX are not so accurate). - Fixed 1 bug: testee aborted at program end if all procedures had a runtime of 0 CPU-cycles (empty procedures). Changes made in ProDelphi 4.0 (10/11/1998): - Export into data base, - Adding a viewer to look at the results directly with the profiler, - measurement results in CPU-cycles availlable - 2 minor bug fixes - greater accuracy and less measurement overhead compared to previous versions by using 64 bit integers instead of data type Comp. - measurement results for recursive procedures fixed. - greater accuracy for calling of deactivated procedures (professional version only). - support of Delphi 4. Attention: ProDelphi 2.x for non-Intel-compatible CPU's is no longer supported. Changes made in ProDelphi 3.1 (05/10/98): Profiler.exe : Error message if too many procedures, Remembering the last directory for next startup of PROFILER.EXE, Easier installation. Proftime.DCU : Dramatically increased accuracy in time measurement (especially for small procedures), greater accuracy in determining the CPU-speed (especially for CPU >= 200 MHZ), no exception when running under IDE and Windows NT (the exception was produced by will but disturbing accuracy or functionallity), correction for the case that more than 20 procedures are registered, Remembering the last screen position for the online operation window.