การทดลองของ Weineng เริ่มต้นด้วยโปรแกรม C ที่เรียบง่ายที่สุดซึ่งเพียงแค่คืนค่า 0 (return 0) โดยคาดไม่ถึงว่าไฟล์ไบนารีที่ได้กลับมีขนาดใหญ่ถึง 15,816 ไบต์ ซึ่งบ่งชี้ว่าคอมไพเลอร์อย่าง GCC มักจะรวมโค้ดที่ไม่จำเป็นจำนวนมากเข้ามาด้วย
เขาได้ดำดิ่งสู่โลกของการปรับแต่ง โดยเริ่มต้นด้วยการใช้แฟล็กคอมไพเลอร์ที่ชาญฉลาดและปรับแก้โค้ดเพื่อลบข้อมูลดีบักกิ้งและส่วนประกอบที่ไม่จำเป็นที่ถูกเรียกใช้ก่อน void main() ซึ่งช่วยลดขนาดไฟล์ลงมาเหลือ 13,632 ไบต์ จากนั้นจึงสำรวจไลบรารีที่ถูกเรียกใช้ และใช้แฟล็กเพิ่มเติมเพื่อลดขนาดลงอีกเป็น 8,704 ไบต์
ความพยายามยังไม่หยุดเพียงเท่านั้น การลบส่วนความคิดเห็นในโค้ดและส่วนจัดการข้อผิดพลาดด้วยแฟล็กเฉพาะทางสามารถลดขนาดได้อีกเหลือ 4,320 ไบต์ สุดท้าย ด้วยการจัดการโค้ดที่เกี่ยวข้องกับการจัดสรรหน่วยความจำ เขาประสบความสำเร็จในการลดขนาดไฟล์ลงอย่างน่าทึ่ง เหลือเพียง 400 ไบต์เท่านั้น
แม้ความรู้เชิงลึกเกี่ยวกับแฟล็กคอมไพเลอร์เหล่านี้อาจดูเป็นเรื่องเฉพาะทาง แต่เทคนิคและแนวคิดในการลดขนาดซอฟต์แวร์ที่นำเสนอในบทความนี้มีคุณค่าอย่างยิ่งสำหรับนักพัฒนาทุกคน ไม่ว่าจะเป็นผู้เชี่ยวชาญด้านฮาร์ดแวร์ที่บางครั้งก็จำเป็นต้องลดขนาดซอฟต์แวร์ของตนเองให้กะทัดรัด
🏷️ หมวดหมู่: Software Hacks, code optimization, compiler, gcc
🔗 อ่านบทความฉบับเต็ม: hackaday
