I've been taking note of the .exe file size of many applications.
I saw that Visual Studio 2005 has an .exe size of 453KB, and VS2008 of 1.04MB because they divide the application into many parts (.exe + many .dll files).
I saw also that MS Outlook has a very large .exe file (11.8MB) while MS Word is very small (398KB)!
After pondering the things that I had seen, I was left with these questions:
On average, the executables are about 2MB of size, from version 1.9. x (for the code above).
Having a self extracting executable larger than 4GB is on the extreme side, since there's a 4gb limit on Windows executable files like *.exe, *. dll etc.
Apparently the most significant factor is the number of bytes the compiler writes out to the resulting file. Basically what you're asking is: "What does my binary executable actually contain?"
The answer to this particular question (about compiler executable file sizes) appears to be no, the cl.exe executable in Visual Studio is ca 380 kB, the g++ executable in Linux is ca 1.1 MB and the clang executable in Linux is ca 30 MB.
A large executable probably has less less shared libraries (less re-usable code), meaning that the application probably is more memory intensive than an application using shared libraries. If you want a system with minimal memory footprint you want shared libraries.
A big exe is likely to be more self-contained, which might make it easier to keep a stable deployment.
As a general rule, big size exe may mean you collect all the dependencies in single file so no dependency problem like dll hell but every time you want to fix any thing in small module the user has to download this big exe!!!
On the other hand small exe it may mean you modularize your application to different modules so it is easy to maintain and upgrade these modules separately and user does not have to download the big chunk exe
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With