Xcode 15 เริ่มใช้ไลบรารีแบบใหม่ mergeable library ตรงกลางระหว่าง static และ dynamic

by lew
11 June 2023 - 17:05

ในงาน WWDC ที่ผ่านมา Xcode มีการเปิดตัวฟีเจอร์ย่อยๆ หลายอย่าง และฟีเจอร์หนึ่งคือ linker ของ Xcode นั้นรองรับไลบรารีแบบใหม่ คือ mergeable library

แอปเปิลระบุว่า ข้อดีของ static library คือไบนารีสุดท้ายมีขนาดเล็ก โหลดโปรแกรมได้เร็ว เพราะระหว่างโหลดไม่ต้องมา link โปรแกรมเข้ากับไลบรารีอีกแล้ว แต่ข้อเสียก็คือช่วงเวลา build จะช้ากว่า ขณะที่ dynamic library จะตรงกันข้าม คือเวลา build หรือ debug จะเร็วมาก แต่ช่วงเวลาที่โหลดโปรแกรมจริงๆ จะเสียเวลา และข้อเสียอีกอย่างคือต้องมี metadata สำหรับการ link ขนไปกับโปรแกรมด้วย ทำให้โปรแกรมมีขนาดใหญ่ขึ้น

mergeable library พยายามเสนอแนวทางตรงกลาง โดยไลบรารีจะมาพร้อมกับ metadata สำหรับการ link แต่ในช่วงเวลา build ตัว Xcoce จะสามารถออปติไมซ์ล่วงหน้า ลบข้อมูลที่ไม่จำเป็นสำหรับการรันไบนารีที่ build อยู่

ฟีเจอร์นี้ต้องการ linker รุ่นใหม่และไม่ซัพพอร์ตสถาปัตยกรรม armv7k ซึ่งอาจจะใช้ใน watchOS 8 ลงไป ทำให้การใช้ฟีเจอร์นี้ควรใช้ใน watchOS 9 และ iOS 12 ขึ้นไป

ที่มา - Apple

Blognone Jobs Premium