Delphi 10.4.2 Sydney is out, and it is full of new features, fixes, and general quality improvements. I really do believe it is the perfect mix of polish and new features, and everyone I’ve talked to seems to agree. One of the stand-out features is the Delphi compiler speed improvements. There are mostly visible in the Win32 compiler and are partially the result of the details provided by Andreas Hausladen and the fixes in previous versions of his IDE Fix Pack.
Here is the list of fixes, just in case you were curious….
- FileSystem
- SearchUnitNameInNS
- GetUnitOf
- CacheControl
- FileNameStringFunctions
- KibitzIgnoreErrors
- RootTypeUnitList
- MapFile.fprintf
- Unit.RdName
- PrefetchToken
- StrLenCalls
(Note: Because of the nature of IDE Fix Pack, our implementation is different, but accomplishes the same goal.)
- WarnLoadResString
- DbkGetFileIndex
- UnlinkImports
- ResetUnits
- KibitzCompilerImplUnitReset
- UnlinkDuringCompile
- UnitFreeAll
- UnitFindByAlias
- SymLookupScope
- ImportedSymbol
- NoUnitDiscardAfterCompile
- SourceOutdated
- MapFileBuffer
- BackgroundCompilerFileExists
- DrcFileBuffer
- Package.CleanupSpeed
- Optimization
- FindPackage
- x64.JumpOpt
- x64.SymTabHashTable
- ReleaseUnusedMemory
- FileNameStringFunctions
- Memory.Shrink
Most of the time Delphi compiles really quickly, and depending on your code you may not see any performance improvements. I’ve tried some of my projects and didn’t see any changes. Matthias Eißing suggested he saw a significant speed-up compiling HeidiSQL, so I gave it a shot and made a video.
In summary the Win32 compile went from 5.5 seconds in 10.4.1 Rio to 3.3 seconds in 10.4.2. That is a 40% speed improvement.
A few other people have shared the speed improvements they discovered moving to 10.4.2 Sydney.
Adrian Gallero, project manager at TMS Software, showed compiling the million lines of code behind TMS FlexCel. It contains “lots of generics, a little more than 3000 units, multiple includes, cycles of units that use themselves recursively, and complex dependencies.” His compile-time went from 30 seconds in 10.3 Rio to 19 seconds in 10.4.2 Sydney.
I normally wait a while before adopting a new Delphi version, but given all the time I spend compiling FlexCel, I migrated to 10.4.2 yesterday.
Adrian Gallero
Project Manager
TMS Software
I’m going to call RAD Studio Delphi 10.42 “the speedy supermodel release.” So many lovely subtle (and overt) tweaks to the UI and BOY DOES IT COMPILE FAST! It’s solid, contains a bunch of quality improvements, LSP is really kicking it now and the new ‘squiggly line’ choices for error insight and so on just add to the overall feel of solidity.
Ian Barker
Embarcadero MVP
Roman Kassebaum Embarcadero Technology Partner and MVP
Moving from Delphi 10.3.3 Rio to 10.4.2 Sydney the compile time for our 2.3 million lines of code dropped from a respectable 2.5 minutes to an incredible 1.5 minutes! This makes the turn-around times for daily work 40% faster!
My recommendation to all Delphi users is: Move to the latest version 10.4.2 Sydney immediately!
Wow. I am really impressed. This is the long-awaited Delphi 7 successor. The new gold standard. Compiling: Superspeed. Working on remote Desktop. Wow. Compilation in 10 seconds instead of 90 seconds. Loading huge forms without trouble.
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition
Just did a quick benchmark for the Climate Planning tool I develop (which has 1.04 million lines of code). I’ve also just upgraded from Delphi Pro to Enterprise (which I thought might have slowed things down). Far from it…
Full Build/Link times (average of 3 measurements):
10.4.1 Pro: 22.7 secs
10.4.2 Ent: 10.8 secs
>52% reduction
Kudos to the Delphi team on all the recent changes since 10.4. The newly responsive code completion features have really brought back the joy to using Delphi. I find this is actually quite profound in affecting how I work: it makes me much more willing to experiment and explore new approaches. Put another way, it’s much more fun now!
Until floating forms are returned (we used hundreds of complex and embedded frame components), who cares about compile time, productivity for us is shit with old fashioned crap and insane embedded form design, so we are staying with 10.3.3 forever. …or until this unforgivable step backwards into caveman times is fixed.