DelphiSpeedUp 3.1

No further development.

DelphiSpeedUp is an IDE plugin for Delphi and C++Builder. It improves the IDE’s startup speed and increases the general speed of the whole IDE. This is achieved by replacing some often used RTL functions by FastCode function that are optimized for the used CPU and some other faster implementations. It also employs caches when the IDE loads.

Important information: All these optimizations do not affect the compiled projects in any way. They are made in memory keeping all the files on disk unmodified. Uninstalling DelphiSpeedUp reverts every change because the optimizations aren’t persistent. They only exist in memory and are limited to the Delphi/BCB/BDS process.
Not every access violation in DelphiSpeedUp.dll is a bug in DelphiSpeedUp. Actually many of the exceptions in the RTL package are now thrown in the DelphiSpeedUp.dll because the RTL functions are replaced by the DelphiSpeedUp functions and wrong parameters like nil-pointers, invalid pointers, … now lead to access violations in the replacement code. A wrong function call just remains a wrong function call.

Features:

  • Improves Delphi/BCB/BDS’s load times
  • Optimizes often used RTL functions by functions form the FastCode project
  • All optimizations are done in memory and do not change any file on disk
  • Adds a “Close all and kill” menu item to the “File” menu that terminates the IDE very fast
  • The fast termination is used when you close the IDE while pressing the CTRL key.
  • Shows waiting cursor while loading designtime package
  • Optimizes CodeCompletion (CodeInsight)
  • Optimizes the Delphi Compiler’s C RTL
  • Optimizes the Debugger, especially the Step-Into functionality
  • CodeCompletion and HelpInsight can be aborted by ESC/mouse move

Supported IDEs:

  • C++Builder 5, 6
  • Delphi 5, 6, 7
  • Borland Developer Studio 2005, 2006
  • CodeGear RAD Studio 2007 (December Update)

How to install:

  • Download the DelphiSpeedUp zip-file
  • Extract the zip file to a directory of your choice
  • Execute the contained executable InstallDelphiSpeedUpX (where X is your Delphi/BCB version)
  • Start Delphi/BCB/BDS and work on your projects

Where is DelphiSpeedUp for Delphi/C++Builder 2009/2010
There is no need for a DelphiSpeedUp for Delphi/C++Builder 2009/2010. The IDE is faster than Delphi 2007 with an installed DelphiSpeedUp. All other features are now part of DDevExtensions. You may also have a look at the IDE Fix Pack for RAD Studio 2007 or newer.

Downloads:

Name IDE Version File Size Downloads Added
DelphiSpeedUp 3.1 for Delphi 7 7 DelphiSpeedUpV31D7.7z 91.53 KB 17300 times 2011-04-22
DelphiSpeedUp 3.1 for Delphi 2007 2007 DelphiSpeedUpV31D2007.7z 105 KB 8622 times 2011-04-22

Discontinued IDE Versions:

Name IDE Version File Size Downloads Added
DelphiSpeedUp 2.8 for Delphi 2005 2005 DelphiSpeedUpV28D2005.7z 74.15 KB 1394 times 2009-12-05
DelphiSpeedUp 2.8 for Delphi 2006 2006 DelphiSpeedUpV28D2006.7z 89.42 KB 3616 times 2009-12-05
DelphiSpeedUp 2.8 for Delphi/BCB 5 5 DelphiSpeedUpV28D5.7z 59.32 KB 2355 times 2009-12-05
DelphiSpeedUp 2.8 for Delphi/BCB 6 6 DelphiSpeedUpV28D6.7z 68.04 KB 3122 times 2009-12-05

 

Changelog:

  • Version 3.1 (2011-04-22)
    • Fixed: Closing editor tab could raise access violation
    • Added: msxmldom, XMLDoc and Variants optimization for the IDE’s usage pattern
    • Added: Masks.pas optimization (UpperCase => UpCase)
  • Version 3.0 (2011-04-18)
    • Added: Extensive Code Completion/Code Insight optimizations
    • Added: Compiler file search cache (Delphi 7, 2007)
    • Fixed: Debugger sometimes stopped working (Start, Pause, Stop buttons are disabled [Delphi 2007])
    • Removed Delphi 6, 2005 and 2006 support.
  • Version 2.8 (2009-12-05)
    • Added: Improved “Step Into” speed, especially for large projects or projects with packages (Delphi 6-2007)
  • Version 2.78 (2008-07-19)
    • Improved: Packages are loaded a little bit faster (Delphi/C++ 2005, 2006, 2007)
    • Added: Delphi Compiler’s C RTL optimizations (much faster map file creation)
    • Added: Background Parser now stops if the main thread wants to do something with the compiler. (Delphi/C++ 2005, 2006, 2007),
    • Added: CodeCompletion can be aborted by pressing ESC
    • Added: HelpInsight can be aborted by moving the mouse or pressing ESC.
  • Version 2.76 (2008-05-03)
    • Fixed: Huge memory leak in DLL hooking code
  • Version 2.75 (2008-04-19)
    • Fixed: FastQuit (Ctrl+Quit) ignored the “Cancel” button in the “Do you want to save?” dialog
    • Added: Fix for TCustomActionList.Notification memory overwrite (also in IDEFixPack for RAD Studio 2007; not fixed for Delphi 5)
    • Added: No delay after switching from Text DFM to the form designer (Delphi 2006, RAD Studio 2007)
  • Version 2.73 (2008-02-24)
    • Fixed: Faster StrScan returned nil when doing a search for #0
    • Changed: Some minor tweaks
  • Version 2.72 (2008-01-07)
    • Improved: Better cache algorithm for LoadResString
    • Improved: .NET 1.1 SetThreadPriotity hook is not necessary for .NET 2.0
    • Improved: Delphi 7 RTM Compiler that has a working optimization is used to compile DelphiSpeedUp for Delphi 7.
    • Added: Some I/O operation optimizations for the Delphi 2007 compiler.
    • Added: LStrAsg, LStrLAsg speed optimization (QC 50564)
    • Added: Faster WideStrUtils.InOpSet (QC 43080)
  • Version 2.7 (2007-10-01)
    • Added: Disables Package and Palette cache to improve startup and project opening time
    • Added: Cache for LoadResString and FindHInstance
    • Improved: GetDynaMethod now uses binary search and an aligned DMT
    • Improved: Some optimizations for RTL functions were rewritten
    • Fixed: C++Builder 2006 and 2007 syntax highlighter hasn’t worked for .h, .hpp files anymore
  • Version 2.6 (2007-09-14)
    • Added: New startup optimizations (especially for RAD Studio 2007)
    • Added: TComponent.FindComponent uses a hash table
    • Added: Package loading is indicated by crAppStart cursor and IDE caption change
    • Added: Project resource file is now loaded with a memory stream resulting in less I/O operations
    • Added: extracppfilemask.txt was loaded multiple times. DSU reduces the amount of I/O operations
    • Added: Ignoring invalid filenames (“C:\dir\C:\dir\file.txt”)
    • Improved: Some better TList optimizations
  • Version 2.51 (2007-05-14)
    • Removed TWinControl.WMPaint optimization (which already exists in Delphi 2007) from Delphi 5-2006
  • Version 2.5 (2007-04-12)
    • Added: Delphi Compiler I/O optimizations for Delphi 2007
    • Added: .NET DynamicXmlSerializer caching for Delphi 2007
    • Fixed: Support for non-NULL zero length WideStrings (mainly for .NET IDE experts)
    • Fixed: FastObj finalization bug
  • Version 2.45 (2007-03-22)
    • Added: Delphi 2007 support
    • Added: Delphi 5, 6, 7, BCB 5, 6 Compiler is now faster especially for files on network drives.
    • Added: Improves the speed of the compiler a little bit
  • Version 2.41 (2007-02-13)
    • Added: FastCode 0.6.4
    • Added: Lots of new faster functions.
    • Added: Option “Disable FastQuit” that removes the “Close all and terminate process” menu item from the file menu.
    • Fixed: _LStrLCmp/_WStrWCmp calls from the RTL itself weren’t replaced by _LStrEqual/_WStrEqual where applicatable.
    • Fixed: Package unloading hadn’t correctly cleared the unit name hash table.
    • Fixed: The splash progressbar was painted over the “Registered…” text in the splash screen.
    • Fixed: French users got German menu items, a missing dcc32.de caused the menu items to be English instead of German.
    • Fixed: Package loading when opening a project caused “Value must be between 0 and 65535” exception.
    • Fixed: _WStrCmp hook caused an access violation
    • Improved: Overhead for inlining and function splitting (_LStrCmp=>_LStrEqual) is now faster.
  • Version 2.35 (2007-02-04)
    • Improved: _LStrCmp and _WStrCmp optimization
    • Improved: Removed two memory accesses from each hooked function
    • Added: Delphi 2005/BDS 2006 environment options dialog now opens much faster
    • Added: Improves the speed of the compiler a little bit
    • Added: Improves the speed of the .NET framework and other msvcrt dependent code
    • Fixed: Missing Package Import Resolver for Delphi/BCB 5
    • Fixed: Closing the IDE could have caused an access violation
  • Version 2.3 (2007-01-01)
    • Added: Package Import Resolver for many System.pas functions and TList/TObjectList/TInterfaceList
    • Added: Some FastSys tweaks to improve speed in runtime packages
    • Added: .NET’s SetThreadPriority(HIGHEST) during IDE loading is now ignored (Delphi 2005, BDS 2006)
    • Added: The IDE is terminated faster by pressing CTRL when closing the main form.
    • Added: DelphiSpeedUp calls BeginUpdate/EndUpdate for BDS’s Tool Palette during startup.
  • Version 2.2 (2006-12-10)
    • Added: “Clear unit buffer” menu item is now also visible in Delphi 2005 and BDS 2006
    • Fixed: Rehooking code in an often called function is replaced by a faster rehooking code.
    • Added: TObjectList speed improvements
    • Added: Replaced FastCode library 0.5 by version 0.6.1.
  • Version 2.1 (2006-10-23)
    • Added: Another speed improvement that also affects the Delphi compiler
    • Added: Caching of the on the fly generated c# serializer assemblies after the first IDE start (BDS 2006)
    • Fixed: Shift+F9 works now directly after the IDE is loaded (Delphi 5-7/BCB 5-6)
    • Fixed: Hooking code is now protected against TortoiseSVN dll injection
    • Fixed: Installer failed to install the DLL when a readonly DLL already existed
  • Version 2.0 (2006-10-01)
    • Added: Replaced FastCode library 0.4 by version 0.5.
    • Added: Startup progressbar for Delphi 2005 and BDS 2006
  • Version 1.99b (2006-09-06)
    • Added: Turbo Edition support
    • Fixed: BCB splashscreen and faster BPL loading failed
    • Fixed: Access violation when a BPL/DLL used an address higher than 0x7FFFFFFF
    • Added: very fast (hashed) CheckDuplicateUnits (secures IDE against bad packages), makes load time a little bit slower, but more secure
    • Improved: BPL/DLL hooking got another speed boost.
  • Version 1.96 (2006-07-25)
    • Improved BPL/DLL hooking speed (~85% faster)
  • Version 1.95 (2006-07-06)
    • Split into DelphiSpeedUp and DDevExtensions
    • Moved ComponentSelector to DDevExtensions
  • Version 1.92 (not released to public)
    • Fixed: Some components (TDataSource, TClientDataSet, …) were missing in the ComponentSelector
    • Fixed: ComponentSelector updated the component list everytime the listbox was opened
    • Fixed: ComponentSelector open the list even if it had the focus only for a short time
    • Added: ComponentSelector is now available for Delphi 2005 und BDS 2006
    • Added: ComponentSelector toolbar can be hidden, location is stored to registry
    • Added: New option “Set IDE shortcuts”
    • Removed: FastQuit (superseeded by “Close all and terminate process”)
  • Version 1.9 (2006-07-01)
    • Fixed: ITE had not worked with ‘Disable “Files modified. Rebuild?”-Dialog’ option
    • Fixed: Starting Delphi without splash screen disabled some features of DelphiSpeedUp
    • Fixed: Wrong “close all and terminate process” dialog text
    • Added: ComponentSelector edit (Delphi 5 to 7)
    • Added: French translation
  • Version 1.8 (2006-05-25)
    • Fixed: The ‘Disable “Files modified. Rebuild?”-Dialog’ option caused the IDE to not recompile a project when the changes were made during a debug session.
    • Fixed: DLL unhooking could cause access violations
    • Added: “File”/”Close all and kill” menu item for a very fast quit.
    • Removed: FastSys optimizations. They caused crashes on some systems (maybe a bug in TThemeManager)
  • Version 1.72
    • Fixed: “&” was translated to AccelChar in the splash screen
    • Fixed: “File not found filename.dcu” when compiling after using the open/save dialog
    • Fixed: SetCurrentDir had not worked with “\\computer\share\” and “X:\”
    • Added: BDS 2006 CheckDuplicateUnits hook for all packages (hooks function InitializePackage(Filename, ValidateCallback) )
    • Added: Installer supports BCB 5 and 6.
  • Version 1.71
    • Fixed wrong PosEx hooking
    • Faster DLL/BPL hooking (reduced GetModuleHandle calls)
    • Fixed NoFastObj registry setting
    • DLL unload bugfix
  • Version 1.7 (2006-05-05)
    • Replaced buggy FastCode_IntToStr function
    • Removed buggy FastCode_IntToStr64 function
    • Disabled buggy FastCodeStrCopyPMD function, uses FastCodeStrCopyBlended instead (caused ‘Sender: TObjec));’ bug)
    • Disabled special Delphi 2005/BDS 2006 optimization for Delphi 5, 6 and 7.
    • Added new registry switches.
    • Installer allows to change the DelphiSpeedUp registry switches.
    • Registry switches are now Delphi version specific (new subkey)
  • Version 1.69
    • New bugfixed FastObj
    • ExpandFileName cache is also cleared if the SetCurrentDirectory() call fails
    • FileAgeCache is cleared if SetCurrentDirectory() is calls
    • Fixed bug in direct RTL hooking code
    • Hooked some more optimized RTL functions
  • Version 1.65
    • Fixed Delphi 5 bug with ALT+F12 (Delphi 5 uses “old” FastCode unit)
    • FastMove 3.03 (06-MAR-2006)
    • Original FastCode
  • Version 1.6 (2006-04-27)
    • Switched to newer FastMove version.
    • FastCode functions are now selected by the actual CPU
    • Fixed MSVCRT.StrLen/StrCmp bug (caused AVs)
    • Some new speed improvements for BDS 2006
    • Added version number to spash screen
    • Fixed FastObj bug with classes that overwrite TObject/TInterfacedObject.NewInstance
    • Moved VCL and IDE related code out of Utils and FastRTL.
  • Version 1.5 (2006-05-21)
    • Better Delphi 2005 and BDS 2006 support
    • Fixed hooking limitation (overall speed improvement for more Packages and DLLs)
    • DLLs go to $(APPDATA) instead of $(DELPHI)\Bin
  • Version 1.4 (2006-05-18)
    • Fixed Win9x bug
    • Fixed relative project filename in the .dpr/.dpk file.
    • FastMove.pas replaces i386 FastCode Move. Uses SSE, MMX or i386 depending on the CPU
    • New faster TList functions (not that radical as FasterTList)
    • Show menu item: “Run/Run without debugger (SHIFT+CTRL+F9)” [D6, D7]
    • Added shortcut to Build project: SHIFT+F9 [D5, D6, D7]
  • Version 1.3 (2006-05-17)
    • Fixed many bugs
    • Removed FasterTList which caused lots of bugs
    • Added own TList.Get and TList.IndexOf
    • Projects are now compiled a little bit faster
    • BDS 2006 support.
    • DelphiSpeedUp is now loaded earlier by the helper package DelphiSpeedUpLoader (Known IDE Packages)