Saya memiliki pertanyaan yang sama dengan: ukuran dll (debug dan rilis) tetapi saya ingin untuk menyelidiki hal ini lebih lanjut.
Kode saya hanyalah satu file .h 2kb dan satu file .cpp 14k. lib debug yang dihasilkan adalah 185 kb yang dibuat dengan
/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"
versi rilis saya adalah 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"
jadi saya mencoba mengoptimalkan ukuran alih-alih kecepatan dan mematikan ekspansi inline untuk mengantisipasi sesuatu yang mirip dengan versi debug (O1 dan Ob0, bukan 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"
ukuran yang dihasilkan : 2275 kb...tunggu..apa???
jika saya melakukan header dumpbin pada versi debug, saya mendapatkan banyak sekali baris, pada versi rilis, semua ukuran muncul dalam satu paragraf kecil anonim.
jadi bagaimana cara memeriksa apa yang memakan semua ruang ini? dan bagaimana masuk akal bahwa pengoptimalan kecepatan dan ukuran memberikan ukuran yang sama dan ukuran tersebut jauh lebih besar daripada tidak dioptimalkan sama sekali DAN membawa informasi debug tambahan?