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

mold: A Parallel Linker

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

Линковка — критический этап сборки, который часто становится узким местом, особенно для крупных C++ программ. Существующие линковщики используют ограниченный параллелизм, оставляя ядра CPU простаивающими. Авторы представляют mold — Unix/Linux линковщик, который систематически применяет параллелизм данных на всех этапах. Они анализируют архитектурные ограничения, мешающие масштабированию, и показывают, как чистый дизайн, разделяющий символьное разрешение и обработку архивов, преодолевает их. На реальных больших программах mold линкует многогигабайтные debug-бинарники за несколько секунд, часто менее чем за секунду. Он в 2.4–16.1 раза быстрее lld и до 112 раз быстрее GNU ld. Абляционный анализ показывает, что ускорение достигается за счет кумулятивного эффекта параллелизации всех проходов.

На больших реальных программах mold линкует многогигабайтные debug-бинарники максимум за несколько секунд, а часто и меньше чем за секунду.
  1. gabeochoa

    Старый твит Руи, но я увидел его в недавнем видео про Zig, и мне очень понравилась мысль:

    (https://x.com/rui314/status/1560277403787997185)

    > Моя стратегия — увеличить ценность общего достояния, скажем, на 100, и получить 1 взамен, так что потерпите. Если вы хотите использовать mold бесплатно, вы можете просто так и сделать. Это моя стратегия open-source бизнеса.

    Желаю всего наилучшего Mold и Руи.

  2. dochtman

    Wild на данный момент заметно быстрее, чем mold:

    https://github.com/wild-linker/wild

    (Бенчмарки в README.)

  3. lrvick

    Мы используем mold как линковщик по умолчанию в дистрибутиве Linux Stagex. Это сократило время полной сборки дерева на часы.

Ещё за этот день

2026-08-26