ฉันมีคำถามเดียวกันกับ: ขนาด dll (ดีบักและปล่อย) แต่ฉันต้องการ เพื่อสอบสวนเรื่องนี้ต่อไป
รหัสของฉันมีเพียงไฟล์ .h 2kb หนึ่งไฟล์และไฟล์ .cpp 14k หนึ่งไฟล์ debug lib ผลลัพธ์ที่ได้คือ 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 ในเวอร์ชัน debug ฉันจะได้บรรทัดมากมายในเวอร์ชัน release ขนาดทั้งหมดจะออกมาในย่อหน้าเล็กๆ ที่ไม่ระบุตัวตนเพียงย่อหน้าเดียว
แล้วฉันจะตรวจสอบได้อย่างไรว่าอะไรใช้พื้นที่ทั้งหมดนี้? และมันสมเหตุสมผลอย่างไรที่การเพิ่มประสิทธิภาพความเร็วและขนาดให้ขนาดเท่ากันและขนาดนั้นใหญ่กว่าที่ไม่ได้รับการปรับให้เหมาะสมเลยและมีข้อมูลการดีบักเพิ่มเติม