Rilis stabil pisanan saka pembangun Mold sing dikembangake dening LLVM lld

Rui Ueyama, penulis linker LLVM lld lan kompiler chibicc, nampilake rilis stabil pisanan saka linker Mould kinerja dhuwur anyar, sing luwih cepet tinimbang linker emas GNU lan LLVM lld ing kacepetan ngubungake file obyek. Proyèk iki dianggep siap kanggo implementasi produksi lan bisa digunakake minangka panggantos sing luwih cepet lan transparan kanggo linker GNU ing sistem Linux. Rencana kanggo rilis utama sabanjure kalebu ngrampungake dhukungan kanggo platform macOS, sawise iku bakal diwiwiti kanggo adaptasi Mold kanggo Windows.

Mold ditulis ing C ++ (C ++ 20) lan dilisensi ing AGPLv3, sing kompatibel karo GPLv3, nanging ora kompatibel karo GPLv2, amarga mbutuhake owah-owahan mbukak nalika ngembangaken layanan jaringan. Pilihan iki diterangake dening kepinginan kanggo entuk pendanaan pembangunan - penulis cumadhang kanggo ngedol hak kanggo kode relicensing ing lisensi permisif, kayata MIT, utawa nyedhiyani lisensi komersial kapisah kanggo wong-wong sing ora wareg karo AGPL.

Mold ndhukung kabeh fitur linker GNU lan nduweni kinerja dhuwur banget - ngubungake dileksanakake ing kacepetan mung setengah saka mung nyalin file karo utilitas cp. Contone, nalika mbangun Chrome 96 (ukuran kode 1.89 GB), butuh 8 detik kanggo nyambungake file eksekusi karo debuginfo ing komputer 53-inti nggunakake emas GNU, LLVM lld - 11.7 detik, lan Mold mung 2.2 detik (26 kaping luwih cepet tinimbang GNU emas). Nalika nyambungake Clang 13 (3.18 GB), butuh 64 detik ing emas GNU, 5.8 detik ing LLVM lld, lan 2.9 detik ing Mold. Nalika mbangun Firefox 89 (1.64 GB), butuh 32.9 detik ing emas GNU, 6.8 detik ing LLVM lld, lan 1.4 detik ing Mold.

Rilis stabil pisanan saka pembangun Mold sing dikembangake dening LLVM lld

Ngurangi wektu mbangun bisa ningkatake kenyamanan ngembangake proyek gedhe kanthi ngurangi wektu ngenteni ing proses ngasilake file sing bisa dieksekusi nalika debugging lan nguji owah-owahan. Motivasi kanggo nggawe Mould yaiku frustasi amarga kudu ngenteni link rampung sawise saben owah-owahan kode, kinerja linker sing ora ana ing sistem multi-inti, lan kepinginan kanggo nyoba arsitektur link sing beda-beda tanpa nggunakake model sing rumit banget. minangka incremental linking.

Kinerja dhuwur ngubungake file eksekusi saka akeh file obyek sing disiapake compiler ing Mold digayuh kanthi nggunakake algoritma sing luwih cepet, paralelisasi aktif ing operasi antarane inti CPU sing kasedhiya lan nggunakake struktur data sing luwih efisien. Contone, Mold ngleksanakake teknik kanggo nindakake petungan intensif nalika nyalin file, wis mbukak file obyek menyang memori, nggunakake tabel hash cepet kanggo resolusi karakter, mindhai tabel relokasi ing thread kapisah, lan dedulicating bagean gabungan sing bola ing file beda.

Source: opennet.ru

Add a comment