การตั้ง Whole Module Optimization สำหรับ iOS project
สำหรับคนเป็น iOS developer คงไม่มีอะไรน่ากวนใจไปกว่ากดรันทีนึงแล้วเดินไปเซเว่น+เข้าห้องน้ำกลับมายังไม่เสร็จ ใน blog นี้จะแนะนำวิธีที่ทำให้ compile เร็วขึ้น
ความจริงก็ไม่เชิงแนะนำคนอื่นหรอก แค่โน้ตหาตัวเองมากกว่าว่าเคยเซตยังไงแล้วสุดท้ายถึงได้
สิ่งที่จะมาช่วยเรา compile เร็วขึ้นคือการ optimization ของ compiler นั่นแหละ ตัวที่เร็วสุดคือ Whole Module Optimization
ถ้าตั้งซื่อๆ เลยแบบนี้
จะทำให้ debug ไม่ได้
ให้เพิ่ม flag -Onone เข้าไป (อ่านว่า โอน็อน นะ ไม่ใช่ออนวัน)
จะทำให้ compiler compile แบบ whole module แต่ไม่ optimize code
จากประสบการณ์จริงลดเวลา compile ได้ประมาณ 50% จาก 13 นาทีกว่า เหลือ 6 นาทีกว่า
วิธีที่เคยลองแล้วใช้ไม่ได้
ส่วนวิธีที่เซต Optimization Level เป็น None แล้วใส่ flag SWIFT_WHOLE_MODULE_OPTIMIZATION เป็น YES รู้สึกจะใช้ไม่ได้แล้ว ไม่เร็วขึ้นแถมมี warning ว่า deprecated
ถ้าอยากรู้ว่าทำไมมันเร็วขึ้นลองอ่านรายละเอียดเพิ่มจาก https://swift.org/blog/whole-module-optimizations/ และเสิชหา blog อังกฤษอื่นๆ ละกัน อย่างที่บอกอันนี้เป็นโน้ตว่าอันไหนทำแล้วได้ผลดีเฉยๆ
วิธีให้ xcode แสดง build time
defaults write com.apple.dt.Xcode.ShowBuildOperationDuration -bool YES
พิมพ์ข้างบนใส่ terminal