【发布时间】:2016-07-16 20:24:02
【问题描述】:
我有同样的问题: dll size (debug and release) 但我想进一步调查。
我的代码只有一个 .h 2kb 和一个 .cpp 14k 文件。生成的调试库为 185 kb,使用
/GS /analyze- /W3 /Zc:wchar_t /ZI /Gm /Od /sdl /Fd"Debug\vc110.pdb" /fp:precise /D "_CRT_SECURE_NO_WARNINGS" /D "_MBCS" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /Oy- /MTd /Fa"Debug\" /EHsc /nologo /Fo"Debug\" /Fp"Debug\lib_yyy.pch"
我的发布版本是 2275 kb
/GS /GL /analyze- /W3 /Gy /Zc:wchar_t /Zi /Gm- /O2 /sdl /Fd"Release\vc110.pdb" /fp:precise /D "_CRT_SECURE_NO_WARNINGS" /D "_MBCS" /errorReport:prompt /WX- /Zc:forScope /Gd /Oy- /Oi /MT /Fa"Release\" /EHsc /nologo /Fo"Release\" /Fp"Release\lib_yyy.pch"
所以我尝试优化大小而不是速度并关闭内联扩展,期待类似于调试版本(O1 和 Ob0 而不是 O2):
/GS /GL /analyze- /W3 /Gy /Zc:wchar_t /Zi /Gm- /O1 /Ob0 /sdl /Fd"Release\vc110.pdb" /fp:precise /D "_CRT_SECURE_NO_WARNINGS" /D "_MBCS" /errorReport:prompt /WX- /Zc:forScope /Gd /Oy- /Oi /MT /Fa"Release\" /EHsc /nologo /Fo"Release\" /Fp"Release\lib_yyy.pch"
结果大小:2275 kb...等等..什么???
如果我在调试版本中使用 dumpbin 标头,我会得到很多行,在发布版本中,所有大小都会出现在一个小的匿名段落中。
那么我如何检查占用所有这些空间的内容?对速度和大小进行优化会产生相同的大小,并且该大小比根本不优化并携带额外的调试信息要大得多,这有什么意义?
【问题讨论】:
标签: debugging visual-c++ dll static-libraries projects-and-solutions