มีอะไรใหม่สำหรับนักพัฒนา
แพลตฟอร์ม GNOME 2.14 สำหรับนักพัฒนา สร้างฐานที่มั่นคงสำหรับนักพัฒนาซอฟต์แวร์ทั่วไป ในการสร้างโปรแกรมประยุกต์ต่างๆ GNOME และแพลตฟอร์ม ใช้สัญญาอนุญาตที่อนุญาตให้ใช้สร้างทั้งซอฟต์แวร์เสรีและเชิงพาณิชย์ เพื่อทำงานบน GNOME ได้
ไลบรารีต่างๆ ในแพลตฟอร์ม GNOME จะรับประกันความคงที่ของ API และ ABI ไปตลอดการปล่อยรุ่นต่างๆ ของ GNOME 2.x แต่ไลบรารีต่างๆ ในตัวเดสก์ท็อป GNOME เอง ไม่มีการรับประกันนี้ แต่โดยส่วนใหญ่ก็จะสอดคล้องกันจากรุ่นถึงรุ่น
- 3.1 GSlice
- 3.2 การลงทะเบียนบริการ
3.1 GSlice
ใน GLib 2.10 ตัวจัดสรรหน่วยความจำ GSlice จะมาแทน GMemChunk และ GTrashStacks ซึ่งเป็น API เก่า GSlice มีความคล้ายคลึงกับตัวจัดสรร slab ของเคอร์เนลมาก และช่วยให้จองหน่วยความจำชิ้นเล็กๆ (เช่น องค์ประกอบของ GList, โครงสร้าง GtkWindow) ได้อย่างรวดเร็วและประหยัดหน่วยความจำ GSlice ยังไม่มีความสิ้นเปลืองจากการล็อคที่ GMemChunk มี ซึ่งทำให้สามารถทำงานได้เร็วขึ้นมากในโปรแกรมที่มีหลายเธรด

GMemChunk ก็ได้รับการเขียนขึ้นใหม่ เพื่อเรียกใช้ GSlice โดยไม่ต้องเปลี่ยนที่โปรแกรมที่เรียก แต่ API ของ GMemChunk ก็ถือได้ว่าปลดระวางแล้ว
การจองหน่วยความจำด้วยตัวจัดสรรหน่วยความจำ GSlice ทำได้โดยเรียก g_slice_new (MyStructure); ซึ่งจะคืนค่าพอยน์เตอร์ (ptr) มา การคืนหน่วยความจำที่จองด้วย GSlice ทำได้โดยเรียกฟังก์ชัน g_slice_free (MyStructure, ptr);
GSlice จะใช้แคชที่เป็นของเธรดซึ่งขยายตัวได้ เก็บชิ้นหน่วยความจำขนาดต่างๆ ไว้ สำหรับการจองหน่วยความจำขนาดใหญ่ GSlice จะเรียกใช้ตัวจัดสรรหน่วยความจำ g_malloc ให้เองโดยอัตโนมัติ ดังนั้น นักพัฒนาจึงไม่จำเป็นต้องเลือกวิธีจัดสรรหน่วยความจำที่มีประสิทธิภาพที่สุดเอง
3.2 การลงทะเบียนบริการ
GNOME รุ่นล่าสุดมีวิธีให้นักพัฒนาลงทะเบียนโปรแกรมเพื่อให้เปิดโดยอัตโนมัติพร้อมกับที่ GNOME เริ่มทำงาน การลงทะเบียนทำได้โดยติดตั้งแฟ้ม .desktop ใน $prefix/share/gnome/autostart/, /etc/xdg/autostart/ หรือ ~/.config/autostart/ ถ้าคุณต้องการเพียงติดตั้งบริการ โดยไม่เปิดใช้โดยปริยาย คุณก็สามารถเพิ่มคุณสมบัติ X-GNOME-autostart-enabled = False ได้
มีคำเตือนบางประการในการลงทะเบียนบริการด้วยวิธีนี้:
- โปรแกรมที่ลงทะเบียนตัวเองกับวาระด้วยวิธีอื่นอยู่แล้ว (เช่น nautilus, gnome-panel, vino) ไม่ควรลงทะเบียนด้วยวิธีนี้
- โปรแกรมที่มีการจัดการวาระ จะถูกจัดการแบบไม่เรียบร้อย ดังนั้น กรุณาตรวจให้แน่ใจ ว่าคุณได้ส่งแฟล็ก --sm-disable ในบรรทัด Exec ของคุณด้วย