views:

546

answers:

4

I have read in other discussions that Release dlls have reduced size compared to Debug dlls. But why is it that the size of the dll I have made is the other way around: the Release dll is bigger than the Debug dll. Will it cause problems?

+5  A: 

It won't cause problems, its probably that the compiler is 'inlining' more items in the release build and creating larger code. It all depends on the code itself.

Nothing to worry about.

EDIT: If you are really worried about and not worried about speed you can turn on optimize for size. Or turn off auto inlining and see what difference you get.

EDIT: More info, you can use dumpbin /headers to see where the dll gets larger

gbrandt
A: 

The performance can be influenced if your application perform tasks of high performance. A release version can even be larger than a debug version, if marked options to generate code with information on Debug included. But this also depends on the compiler you are using.

lsalamon
+1  A: 

How much bigger is your Release DLL than your Debug DLL?

Your Debug DLLs might seem small is you are generating PDB symbol files (so the debug symbol is not actually in the DLL file). Or if you are inadvertently compiling debug symbols into your Release DLL.

cpeterso
+1  A: 

This can be caused by performance optimizations like loop unrolling - if it's significantly different, check your Release linker settings to make sure that you're not statically compiling anything in.

Paul Betts