ProDelphi 8.0 Copyright 1998/99/2000 Helmuth J. H. Adolph Freeware and Professional Version --------------------------- Installing ProDelphi ---------------------------- A General ---------- 1. Check your CPU: ProDelphi 7.x runs on Pentium and Pentium compatible CPU's. It has been tested on: - Pentium Overdrive 120 MHz, Intel Celeron 400 MHz and Intel Pentium II with 400 MHz. - AMD K6 166 and 233 MHz, AMD K6-2 266 and 300 MHz, AMD K6-3 400 MHz, AMD Athlon 600 MHz, It definitely does NOT run on a Cyrix 6x86. The Cyrix M2 and IDT have not been tested. 2. If you have already an older version of ProDelphi, you MUST delete these old files first: ProfMeas.DLL, ProfCali.DLL, ProfInt.PAS, ProfOnli.PAS and ProfOnli.DFM. If you have used the Setup program for installation and left the files where they have been installed, this is done automatically. 3. Install ProDelphi either automatically (see D.) or manually (ReadMe.DOC). 4. You should read the documentation (Readme.DOC), Post-Mortem-review is only described in the documention. B. Testing the installation with the example programs (for automatic setup) ---------------------------------------------------------------------------- If you have installed ProDelphi with Setup.exe, you can now, for testing the installation or for checking the accuracy of ProDelphi, compile the two example programs installed in the subdirctories under your installation directory. The example in the directory DONT-PROFILE should not be profiled, only compiled. It has a built-in runtime measurement and gives you the runtime for some typical code constructions you would always come across when you write programs yourself. The compiler switch for optimization should be unchecked, otherwise ProDelphi inserts lines for deactivating optimization into your sources. The program in the directory PROFILE-ME is, in principal, the same program without the built-in runtime measurement. You should first compile this program and then start ProDelphi from the Tools-menu of Delphi. Select 'Profile', select this program, check the box 'Autostart' and then click the Run-button. After that define the compiler symbol 'PROFILE' in Delphi and compile it again. Start the program, press the start button and then close the application. In ProDelphi select the function 'View', select the text file in the directory PROFILE-ME, and click 'Run'. A window should appear with the measurement results. Keep this window open. Compile the program in the directory DONT-PROFILE and start it. Compare the results for runtime measurement of both programs, they should be nearly identical (differences depend on the cache size of your CPU - see progrm description, The programs in the subdirectory DLLSUPP are fore users which want to measure methods in DLL's C. Profiling your own sources ----------------------------- 1. Save all your sources (e.g. ZIP them into an achive file). 2. Compile your program. If no errors occur: 3. Start ProDelphi. 4. Select Profile and mark the correct Delphi-version. If you use conditional symbols, you should see them in your ProDelphi window (if not, you haven't saved your project). 5. Select this directory of your DPR-file. 6. Click on Run. 7. Define the compiler symbol PROFILE in the compiler options (conditional definitions), NOT in the source file! Uncheck the Optimization-option !!!!!!! and make a COMPLETE compilation. 8. Start your program and let it do what it has to do. Attention: When you start your program, it takes a second or two for calibration (estimation of your CPU speed and measurement correction times). When you use ProDelphi 7.x under Windows 95, the interrupts are locked while calibrating, that means that your mouse cursor does not move !!! Under Windows NT 4.0 the interrupts can not be locked, so your mouse cursor can be moved. Please do not start any other programs while calibrating, otherwise the results are incorrect. After the calibration phase the Online operation window and your form(s) is/are shown. 9. After your program has terminated, start ProDelphi 7.x, select VIEW, open the directory with your compiled program, select the file 'Progname.TXT' and click the Run-button. 'Progname' stands for the name of your program. After this actions the viewer window opens and you can look at the results of the measurement. If, at profilation time, you have checked ASCII-output file you also can have a look into the result file (programname.BEN) with Delphi or print it with Delphi (use landscape format). 10. Checked procedures might use a few CPU-cycles more than they would use without measurement. The reason is, that the measurement procedures in the unit ProfInt and in the DLL ProfMeas are moved into the memory cache and delete those procedures that would be there without measurement. Depending on the CPU you use, the results are very accurate or less accurate. (Same effect is given for data too.) The L1-cache of the plain pentium has 16 kB, the L1-cache of pentium MMX / PII or Celeron have 32 kB Cache size, the AMD K6 / K6-2 / K6-3 have 64 kB L1-Cache Size. Also the L2-Cache sizes differ, the processor might have a L3-cache (e.g. the AMD K6-3). Also the accesses to L2-cache differ (1/3, 1/2, 1/1 CPU frequency or bus frequency). That's why the results on an AMD K6 are more excact than on pentium processors. 11. See the README.* file for further instruction or information. 12. Limitations of use: Console applications can not have an online operation window. For further minor important limitations see README.DOC. 13. For DLL-support unzip the file DLLSUPP.ZIP and read the comments in the sources. -------------------------- Uninstalling ProDelphi ---------------------------- Delete the files, directories and links you have created. For that you can use the Setup Program. ----------------------- ProDelphi Distribution Files ------------------------ PROFILER.EXE ProDelphi executable file PROFINT.PAS Units for Delphi2, Delphi3, Delphi4 and Delphi 5 that links the profiled program or DLL to the measurement DLL PROFMEAS.DLL (time measurement). PROFONLI.PAS Units for Delphi2, Delphi3, Delphi4 and Delphi 5 that content the functions of the online operation window. PROFONLI.DFx DFM - files for Delphi2, Delphi3, Delphi4 and Delphi 5 that content the form of PROFONLI.PAS. PROFMEAS.DLL The DLL, that contents all measurement procedures. There is one DLL for all Delphi versions. PROFCALI.DLL DLL that computes the measurement correction (calibration), it is included used by PROFINT.PAS. READMExx.DOC Description of ProDelphi x.x (Word-Format) ORDER.TXT Information on how to order the registered version ORDFORM.TXT Ordering form for postal orders LICENSE.TXT License Agreement / Warranty Disclaimer VENDOR.TXT Information for shareware distributors INSTALL.TXT This file. NEWS.TXT News and Hints for usage of ProDelphi. REGISTER.ENG Registration via www.shareit.com (english) REGISTER.GER Registration via www.shareit.com (german) SETUP.EXE Program for automatic setup. GETSPEED.EXE Program to get the speed index of a PC to be emulated. DLLSUPP.ZIP Example project for measuring procedures in a DLL. ------------------------- Files created by ProDelphi ------------------------- PROFLST.ASC Contains information about the procedures to be measured for profiling or traced for post mortem review. PROFILE.INI Options for time measurement, screen coordinates for the online operation window. ---------- Files created at runtime by measured or traced programs ----------- PROGNAME.EXE PROGNAME is the name of your executable, created by Delphi. PROGNAME.TXT Results in data base format (runtimes of the procedures), used by the built-in viewer. PROGNAME.TX2 Run numbers, CPU-clock-rate and headlines for the built-in viewer. PROGNAME.NEV Contents the names of those methods that are not called at time of measurement. PROGNAME.HST History file, stored by the viewer when the history button is pressed. Contains runtimes for later comparison after optimization. PROGNAME.BEN Results of the time measurement in ASCII if the option ASCII-output file was checked at profiling time. PROGNAME.SWO List of procedures that have to be deactivated for time measurement at next program start. PROGNAME.PMR Call stack in case of a trapped exception (for Post Mortem Review only). All files are created in the output directory for the exe- or dll-file.