Первый стабильный релиз компоновщика Mold, развиваемого разработчиком LLVM lld
Автор
Сообщение
news_bot ®
Стаж: 6 лет 11 месяцев
Сообщений: 27286
Rui Ueyama, автор компоновщика LLVM lld и компилятора chibicc, представил первый стабильный релиз нового высокопроизводительного компоновщика Mold, заметно опережающего по скорости связывания объектных файлов компоновщики GNU gold и LLVM lld. Проект признан готовым для рабочих внедрений и может применяться в качестве более быстрой прозрачной замены GNU linker на Linux-системах. Из планов на следующий значительный выпуск отмечается доведение до готовности поддержки платформы macOS, после чего начнётся работа по адаптации Mold для Windows.
Mold написан на языке С++ (C++20) и распространяется под лицензией AGPLv3, которая совместима с GPLv3, но не совместима с GPLv2, так как требует открытия изменений при разработке сетевых сервисов. Подобный выбор объясняется желанием получить финансирование разработки - автор готов продать права на код для перелицензирования под разрешительной лицензией, такой как MIT, или предоставить отдельную коммерческую лицензию для тех, кого не устраивает AGPL.
Mold поддерживает все возможности GNU linker и отличается очень высокой производительностью - компоновка выполняется со скоростью, всего в два раза медленнее простого копирования файлов утилитой cp. Например, при сборке Chrome 96 (размером кода 1.89 ГБ) на компоновку исполняемых файлов c debuginfo на 8-ядерном компьютере при использовании GNU gold тратится 53 секунды, LLVM lld - 11.7 секунд, а Mold всего 2.2 секунды (в 26 раз быстрее GNU gold). При компоновке
Clang 13 (3.18 ГБ) в GNU gold требуется 64 секунды, в LLVM lld - 5.8 секунд, а в Mold - 2.9 секунды. При компоновке
Firefox 89 (1.64 ГБ) в GNU gold необходимо 32.9 секунд, в LLVM lld - 6.8 секунд, а в Mold - 1.4 секунды.
Сокращение времени на компоновку позволяет значительно повысить удобство разработки больших проектов за счёт сокращение ожидания в процессе формирования исполняемых файлов при отладке и тестирования изменений. Мотивом к созданию Mold стало раздражение от необходимости ждать завершения компоновки после каждого внесения изменения в код, а также низкая эффективность работы существующих компоновщиков на многоядерных системах и желание опробовать принципиально иную архитектуру компоновки, не прибегая при этом к излишне усложнённым моделям, таким как инкрементальная компоновка.
Высокая производительность компоновки исполняемого файла из большого числа подготовленных компилятором объектных файлов в Mold достигается использованием более быстрых алгоритмов, активным распараллеливанием операций между доступными ядрам CPU и применением более эффективных структур данных. Например, в Mold реализована техника выполнения интенсивных вычислений одновременно с копированием файлов, упреждающая загрузка объектных файлов в память, использование быстрых хэш-таблиц при разрешении символов, сканирование таблиц перемещений в отдельном потоке и дедупликация повторяющихся в разных файлах объединяемых секций.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://news.ycombinator.com/i...)
- OpenNews: Выпуск стандартной Си-библиотеки PicoLibc 1.5
- OpenNews: Cosmopolitan - стандартная Си-библиотека и формат кроссплатформенных исполняемых файлов
- OpenNews: Apache прекращает разработку stdcxx, стандартной библиотеки C++
- OpenNews: Разработчики из Google предложили разработать свою libc для LLVM
- OpenNews: Google открыл систему для создания sandbox-окружений для библиотек C/C++
Похожие новости:
- [Системное администрирование, Серверное администрирование, DevOps, Микросервисы] АМА-сессия Слёрма по service mesh. Часть 2
- [Системное администрирование, DevOps, Микросервисы, Kubernetes] Что такое service mesh, когда внедрять, альтернативы Istio и другие ответы экспертов с АМА-сессии Слёрм по service mesh
- [Интерфейсы, Прототипирование, Производство и разработка электроники, Дизайн, Электроника для начинающих] Литье пластика со встроенной электроникой (IME): что это, и почему это новый тренд
- [Системное администрирование, DevOps, Микросервисы, Kubernetes] Service Mesh Wars, прощаемся с Istio (перевод)
- [Работа с векторной графикой, Химия] Рисуем молекулы с помощью PostScript
- [Высокая производительность, Информационная безопасность, IT-инфраструктура, Серверное администрирование] АМА-сессия «Service mesh 2021» 17 февраля
- [Программирование, Kubernetes] Руководство по настройке целевых уровней обслуживания (SLO) в Kubernetes с помощью Prometheus и Linkerd (перевод)
- [Сетевые технологии, DevOps, Микросервисы, Kubernetes] Service Mesh: что нужно знать каждому Software Engineer о самой хайповой технологии (перевод)
- [C++, Компиляторы, C, Программирование микроконтроллеров, Системы сборки] Самые частые грабли при использовании printf в программах под микроконтроллеры
- [C++, Компиляторы, C, Программирование микроконтроллеров, Системы сборки] Делаем процесс разработки тяжеловесного программного обеспечения под микроконтроллеры более удобным (нет)
Теги для поиска: #_linker, #_mold
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 03-Фев 10:55
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 11 месяцев |
|
Rui Ueyama, автор компоновщика LLVM lld и компилятора chibicc, представил первый стабильный релиз нового высокопроизводительного компоновщика Mold, заметно опережающего по скорости связывания объектных файлов компоновщики GNU gold и LLVM lld. Проект признан готовым для рабочих внедрений и может применяться в качестве более быстрой прозрачной замены GNU linker на Linux-системах. Из планов на следующий значительный выпуск отмечается доведение до готовности поддержки платформы macOS, после чего начнётся работа по адаптации Mold для Windows. Mold написан на языке С++ (C++20) и распространяется под лицензией AGPLv3, которая совместима с GPLv3, но не совместима с GPLv2, так как требует открытия изменений при разработке сетевых сервисов. Подобный выбор объясняется желанием получить финансирование разработки - автор готов продать права на код для перелицензирования под разрешительной лицензией, такой как MIT, или предоставить отдельную коммерческую лицензию для тех, кого не устраивает AGPL. Mold поддерживает все возможности GNU linker и отличается очень высокой производительностью - компоновка выполняется со скоростью, всего в два раза медленнее простого копирования файлов утилитой cp. Например, при сборке Chrome 96 (размером кода 1.89 ГБ) на компоновку исполняемых файлов c debuginfo на 8-ядерном компьютере при использовании GNU gold тратится 53 секунды, LLVM lld - 11.7 секунд, а Mold всего 2.2 секунды (в 26 раз быстрее GNU gold). При компоновке Clang 13 (3.18 ГБ) в GNU gold требуется 64 секунды, в LLVM lld - 5.8 секунд, а в Mold - 2.9 секунды. При компоновке Firefox 89 (1.64 ГБ) в GNU gold необходимо 32.9 секунд, в LLVM lld - 6.8 секунд, а в Mold - 1.4 секунды. Сокращение времени на компоновку позволяет значительно повысить удобство разработки больших проектов за счёт сокращение ожидания в процессе формирования исполняемых файлов при отладке и тестирования изменений. Мотивом к созданию Mold стало раздражение от необходимости ждать завершения компоновки после каждого внесения изменения в код, а также низкая эффективность работы существующих компоновщиков на многоядерных системах и желание опробовать принципиально иную архитектуру компоновки, не прибегая при этом к излишне усложнённым моделям, таким как инкрементальная компоновка. Высокая производительность компоновки исполняемого файла из большого числа подготовленных компилятором объектных файлов в Mold достигается использованием более быстрых алгоритмов, активным распараллеливанием операций между доступными ядрам CPU и применением более эффективных структур данных. Например, в Mold реализована техника выполнения интенсивных вычислений одновременно с копированием файлов, упреждающая загрузка объектных файлов в память, использование быстрых хэш-таблиц при разрешении символов, сканирование таблиц перемещений в отдельном потоке и дедупликация повторяющихся в разных файлах объединяемых секций. =========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 03-Фев 10:55
Часовой пояс: UTC + 5