As a test I decided to create a simple "Hello world" app in Delphi using Delphi 4, 5, 6, 7, 2005, 2010 and XE3. The app is nothing more than a TForm, a TButton with an OnClick event that calls ShowMessage('Hello world').
Below are the results of each final EXE with debugging turned off:
Can someone explain why the XE3 version is 26 times larger than the average of the previous versions of Delphi?
Here are my project settings for XE3:
You may have done a only a compile after changing to 'Release' configuration. Try to do a rebuild (not recompile). This will truly activate the Release configuration on the executable, and perhaps a smaller file size.
For me (Delphi XE2), the size reported by Windows for the same app (Release configuration) is:
1.52 MB (1,600,512 bytes)
I figured out the problem. Chalk this up to the fact that I use Delphi 7 99% of the time when I develop, and XE3 is new to me. Even though I had chosen "Release" under the project options and made my tweaks there, it turns out that simply choosing "Release" there does not put the project into Release mode.
Who would have thought that I also had to use the Project Manager panel and double click on the "Release" item in order to put the project into Release mode?
If anyone is curious, the final EXE is now 2,229 KB, which is only 5 times the size of the EXEs prior to Delphi 2010.
Well .. there are many things that explain the difference between the old delphi release and the new .. the important thing is the support of unicode (D2009 .. DXE4),all chars in unicode alloc 2 bytes (in D1,D2,D3,D7,...they only alloc one byte)
Just put these lines in your .dpr file, it reduces exe size by 20%
uses
Windows,
{$O+}
{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}