Landskap pembangunan untuk penghubung (linker) telah menyaksikan kemasukan peserta baharu dengan pengenalan Wild, penghubung berasaskan Rust yang menunjukkan peningkatan prestasi yang memberangsangkan berbanding penyelesaian sedia ada. Walaupun masih di peringkat awal, Wild telah menarik perhatian komuniti dengan mencapai kelajuan sehingga dua kali ganda lebih pantas daripada Mold dalam senario tertentu, menandakan kemajuan penting dalam teknologi penyambungan.
Kejayaan Prestasi
Penanda aras awal Wild menunjukkan hasil yang mengagumkan, terutamanya dalam pembinaan bukan-debug. Ujian komuniti mendedahkan bahawa Wild mengatasi penghubung sedia ada secara ketara ketika menghubungkan rustc-driver dan clang tanpa maklumat debug. Kelebihan prestasi ini telah mencetuskan minat yang besar, terutamanya memandangkan Mold sebelum ini dianggap sebagai pilihan terpantas yang ada.
Nampaknya anda membina dari awal. Dalam kes tersebut, sebahagian besar masa akan digunakan untuk mengkompil kod, bukan menghubung. Kepentingan penghubung yang pantas adalah paling ketara semasa pembangunan berulang.
Perbandingan Masa Pautaan (rustc-driver tanpa maklumat nyahpepijat):
- GNU ld (2.38): 20,774ms
- gold (2.38): 6,796ms
- lld (18.1.8): 1,601ms
- mold (2.34.1): 946ms
- wild (2024-11-30): 486ms
Dorongan untuk Penyambungan Berperingkat
Satu pembeza utama bagi Wild ialah sokongan yang dirancang untuk penyambungan berperingkat, ciri yang ketara tidak terdapat dalam penghubung moden lain termasuk Mold. Komuniti telah menekankan ini sebagai jurang yang ketara dalam alat pembangunan Linux, terutamanya berbanding dengan penghubung Microsoft, yang telah menyokong penyambungan berperingkat selama beberapa dekad. Keupayaan ini boleh meningkatkan kitaran pembangunan secara ketara dengan hanya menghubungkan semula komponen yang diubah dan bukannya keseluruhan program.
Peranan Rust dalam Sistem Kompleks
Pemilihan Rust untuk melaksanakan Wild telah mencetuskan perbincangan yang signifikan. Ahli komuniti menyatakan bahawa sistem jenis yang kukuh dan jaminan keselamatan Rust menjadikannya sangat sesuai untuk menguruskan kerumitan penyambungan berperingkat. Walaupun ada yang mempersoalkan keperluan penghubung lain selepas pelesenan semula MIT Mold, fokus pada penyambungan berperingkat dan ciri-ciri keselamatan Rust mengemukakan kes yang meyakinkan untuk pembangunan Wild.
Batasan Semasa
Walaupun prestasinya menjanjikan, Wild masih dalam pembangunan awal dengan beberapa batasan. Ia kini hanya menyokong x86-64 pada Linux, tidak mempunyai sokongan LTO (Pengoptimuman Masa Penyambungan), dan belum melaksanakan ciri penyambungan berperingkat yang dirancang. Konsensus komuniti mencadangkan untuk menunggu sebelum menggunakan Wild dalam persekitaran pengeluaran, walaupun kemajuan pembangunannya sedang dipantau dengan teliti.
Batasan Semasa Wild:
- Hanya untuk x86-64 pada Linux
- Belum menyokong pemautan tambahan
- Sokongan bendera pemautan yang terhad
- Tiada skrip pemautan
- Tiada sokongan untuk Mac/Windows
- Tiada sokongan LTO
Fokus Pembangunan
Penekanan projek pada prestasi masa pembangunan berbanding pembinaan pengeluaran telah mendapat sambutan daripada pembangun. Fokus ini sejajar dengan keperluan aliran kerja pembangunan moden, terutamanya dalam projek Rust di mana masa penyambungan boleh menjadi bottleneck semasa pembangunan berulang.
Nota Teknikal:
- LTO (Pengoptimuman Masa Penyambungan): Teknik pengkompilan yang membolehkan pengkompil mengoptimumkan merentasi pelbagai fail sumber
- Penyambungan berperingkat: Teknik yang hanya menghubungkan semula bahagian kod yang diubah dan bukannya keseluruhan program
- RAII (Perolehan Sumber Adalah Pemulaan): Idiom pengaturcaraan yang digunakan dalam Rust untuk menguruskan sumber
Rujukan: Wild Linker