HeadlinesBriefing favicon HeadlinesBriefing.com

mold: Linker Paralel Masif

Hacker News •
×

Menautkan adalah langkah penting dalam proses pembangunan perangkat lunak yang menggabungkan file objek yang dikompilasi menjadi satu executable atau pustaka bersama. Meskipun telah puluhan tahun upaya rekayasa, waktu menautkan tetap menjadi hambatan signifikan dalam siklus edit-kompilasi-debug, terutama untuk program C++ besar. Linker yang ada mengeksploitasi paralelisme terbatas, meninggalkan sebagian besar inti CPU menganggur selama penautan.

Kami menyajikan mold, linker Unix/Linux yang menerapkan paralelisme data secara sistematis di seluruh pipeline penautan. Kami pertama menganalisis kendala arsitektural yang mencegah linker yang ada untuk berskala, termasuk resolusi simbol yang terjerat dan pemrosesan arsip, dan kemudian menunjukkan bagaimana desain baru yang memisahkan mereka mengatasi keterbatasan ini.

Pada program dunia nyata yang besar, mold menautkan biner debug multi-gigabyte dalam paling banyak beberapa detik, dan seringkali di bawah satu detik. Ini 2,4-16,1x lebih cepat daripada linker lld tercanggih, dan hingga 112x lebih cepat daripada GNU ld tradisional. Studi ablasi menunjukkan bahwa tidak ada optimasi tunggal yang mendominasi; percepatan berasal dari efek kumulatif dari memparalelkan semua lintasan.

Entitas Kunci: Orang: Rui Ueyama