One big executable or many small DLL's?

Posted by Patrick on Stack Overflow See other posts from Stack Overflow or by Patrick
Published on 2010-05-21T10:32:16Z Indexed on 2010/05/21 10:40 UTC
Read the original article Hit count: 264

Filed under:
|
|
|

Over the years my application has grown from 1MB to 25MB and I expect it to grow further to 40, 50 MB. I don't use DLL's, but put everything in this one big executable.

Having one big executable has certain advantages:

  • Installing my application at the customer is really: copy and run.
  • Upgrades can be easily zipped and sent to the customer
  • There is no risk of having conflicting DLL's (where the customer has version X of the EXE, but version Y of the DLL)

The big disadvantage of the big EXE is that linking times seem to grow exponentially.

Additional problem is that a part of the code (let's say about 40%) is shared with another application. Again, the advantages are that:

  • There is no risk on having a mix of incorrect DLL versions
  • Every developer can make changes on the common code which speeds up developments.

But again, this has a serious impact on compilation times (everyone compiles the common code again on his PC) and on linking times.

The question http://stackoverflow.com/questions/2387908/grouping-dlls-for-use-in-executable mentions the possibility of mixing DLL's in one executable, but it looks like this still requires you to link all functions manually in your application (using LoadLibrary, GetProcAddress, ...).

What is your opinion on executable sizes, the use of DLL's and the best 'balance' between easy deployment and easy/fast development?

© Stack Overflow or respective owner

Related posts about executable

Related posts about dll