mold: линковщик, который собирает гигабайтные бинарники за секунды
mold: A Parallel Linker

Линковка — критический этап сборки, который часто становится узким местом, особенно для крупных C++ программ. Существующие линковщики используют ограниченный параллелизм, оставляя ядра CPU простаивающими. Авторы представляют mold — Unix/Linux линковщик, который систематически применяет параллелизм данных на всех этапах. Они анализируют архитектурные ограничения, мешающие масштабированию, и показывают, как чистый дизайн, разделяющий символьное разрешение и обработку архивов, преодолевает их. На реальных больших программах mold линкует многогигабайтные debug-бинарники за несколько секунд, часто менее чем за секунду. Он в 2.4–16.1 раза быстрее lld и до 112 раз быстрее GNU ld. Абляционный анализ показывает, что ускорение достигается за счет кумулятивного эффекта параллелизации всех проходов.
На больших реальных программах mold линкует многогигабайтные debug-бинарники максимум за несколько секунд, а часто и меньше чем за секунду.
- gabeochoa
Старый твит Руи, но я увидел его в недавнем видео про Zig, и мне очень понравилась мысль:
(https://x.com/rui314/status/1560277403787997185)
> Моя стратегия — увеличить ценность общего достояния, скажем, на 100, и получить 1 взамен, так что потерпите. Если вы хотите использовать mold бесплатно, вы можете просто так и сделать. Это моя стратегия open-source бизнеса.
Желаю всего наилучшего Mold и Руи.
- dochtman
Wild на данный момент заметно быстрее, чем mold:
https://github.com/wild-linker/wild
(Бенчмарки в README.)
- lrvick
Мы используем mold как линковщик по умолчанию в дистрибутиве Linux Stagex. Это сократило время полной сборки дерева на часы.