Why are binaries/executables so large on Windows?
Tristam MacDonald
swiftcoder at gmail.com
Fri Jul 20 11:00:26 PDT 2007
This is primarily because the current setup has the exututabe linked against a static runtime library. I am not sure about Windows, but on most platforms the C and C++ runtime libraries are dynamically linked, which makes the executables a lot smaller.
The test.obj is about the size your executable would be with static linking to the runtime.
There is no reason why you couldn't compile a dynamic version of the library, and link to that instead (and in fact, several people on this mailing list have done it already - use the search)., although this may be somewhat more complicated on Windows than on Mac/Unix
rpgfan3233 Wrote:
> Some thing as simple as:
>
> void main ()
> {
> }
>
> generates a 75kb executable with dmd 1.018 using the following line:
> dmd -O -release test.d
>
> Does anybody know why this happens? The one thing that prevents me from using D is the large size of the generated files.
>
> Here are the sizes of the files generated by the compiler:
> test.obj - 395 bytes
> test.map - 2390 bytes
> test.exe - 76828 bytes
>
> Is Microsoft's OMF naturally large? Are runtime type checks to blame?
>
> If anybody could help or explain this to me, it would be greatly appreciated.
More information about the Digitalmars-d
mailing list