Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 927695
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T19:53:38+00:00 2026-05-15T19:53:38+00:00

I release a single executable (.EXE) for a desktop program using Delphi 2009. I

  • 0

I release a single executable (.EXE) for a desktop program using Delphi 2009. I have no external DLLs or resources that I need for the program to run.

I use two components: LMD Innovative’s ELPack and Sergey Tkachenko’s TRichView that are compiled into my executable.

When I build my production version, using the “Release” build configuration, the executable file produced is 13,533 KB.

Prior to using Delphi 2009, I was using Delphi 4. The executable it produced was only 2,671 KB while incorporating the same two components and basically having the same code as my current version.

I do understand that Delphi 2009 is completely Unicode (which is the main reason why I upgraded), and being Unicode can cause up to a doubling of size. But this is about 5 times larger.

Is there a reason why my executable has to remain 5 times larger? Or are there some simple ways to cut down a significant chunk of the executable size?


Please note. Some people are answering with ways to compress the Delphi EXE. That is not what I am trying to do. I am trying to simply see why so much space is being used to remove what might not be necessary. If that is done, compression can still be done afterwards if so desired.

It really doesn’t matter how big or small the executable is once it is installed. It is for downloading purposes and to minimize server load and download times that you want to compress it. I prefer to use Inno Setup and compress the program inside the install routine itself. Then when it is installed, it is expanded to full size. That both prevents possible detection as a virus and eliminates the extra startup time needed to uncompress the program in memory. Also I code sign both my executable and my install routine and some compression techniques are incompatible with that.

For more info about compressing, see the StackOverflow question: Delphi EXE compressor?


ldsandon asked me to provide exactly what options I’m using, so here they are:

Compiling Options
(source: beholdgenealogy.com)

Linking Options
(source: beholdgenealogy.com)

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-15T19:53:39+00:00Added an answer on May 15, 2026 at 7:53 pm

    When moving from Delphi 7 to Delphi 2010., our .exe’s grew for example from 16 megs to 35 megs.

    I asked a question similar to yours on the Embarcadero forum a few weeks ago. (link) In my OP, I listed a series of links on this subject that you might find helpful.

    We tried using UPX to compress our .exe’s. Letting it work for hours significantly reduced our .exe, but we probably won’t use it in production for these reasons:

    1. We have quite a few .exe’s and don’t want to wait 1/2-day on each build. (It’s possible that we could find a non-brute force set of parameters to UPX that would reduce this…)

    2. Although the size of the .exe is reduced, our shippable was not, because our installer (not surprisingly) is unable squeeze much more compression out of the already compressed file… whereas it was able to reduce the original 16 meg .exe down to 8 megs.

    3. I’ve read some reports that at some time (rarely, but not never), UPX exe’s triggered various anti-virus programs to report the application contained a virus. (I don’t recall the date, site, or details of where I saw this, so it’s a bit unfair of me to report it here.) But, we are so adverse to taking a risk of that even possibility happening, that UPX is off the table…

    The link on the Embarcadero forum also includes a link to another SO thread on this topic.

    I continue to be surprised and disappointed at the code bloat we found when moving to Delphi 2010. As Nick notes, 2X for Unicode is quite excessive.

    However, the bloat is a relatively minor trade-off when moving to D2010, because, IMO, D2010 is such a terrific upgrade in so many other ways. But, it does mean that we’ll probably have to move to shipping 2 CDs rather than one. I’m not looking forward to seeing the reaction to this from our organization…

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

So, I've got a single VB6 executable that references multiple VB6 COM DLLs. Is
I have created many build configurations in Hudson for a single solution (eg. Release,
I need a single line bash command that takes a piped input and returns
We are using mercurial in a single repository. We have a master branch and
I want to have a single Visual Studio project that builds a DLL file
I have a small single-threaded C++ application, compiled and linked using Visual Studio 2005,
I have a WPF project based upon Prism Feb 2009 release set up as:
I currently have a single solution that contains both the one application developed so
I'm using CXF RS 2.5.1 with Spring 3.0.6-RELEASE. I would like to have multiple
I release several modifications a week for my Windows Services and my users have

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.