Go 1.15 Улучшает Компоновщик


Go 1.15 был выпущен с улучшениями компоновщика, а также улучшенной обработкой распределения для небольших объектов с большим количеством ядер. Наряду с этими улучшениями, существуют изменения в реализации цепочки инструментов, среды выполнения и библиотек.

Go-это проект с открытым исходным кодом, разработанный командой Google и многими участниками сообщества с открытым исходным кодом на протяжении более 8 лет. Основное предназначение-использование в качестве языка системного программирования, и он был использован в громких коммерческих успехах, таких как Docker.

Усовершенствования компоновщика направлены на сокращение использования ресурсов компоновщика как во времени, так и в памяти, а также на повышение надежности и ремонтопригодности кода. Команда разработчиков говорит, что для репрезентативного набора больших программ Go связывание происходит на 20 процентов быстрее и требует в среднем на 30 процентов меньше памяти для ОС на базе ELF на архитектуре AMD64, с более скромными улучшениями для других архитектур и комбинаций ОС.

Улучшения были достигнуты благодаря недавно переработанному формату объектных файлов и обновлению внутренних этапов для повышения параллелизма. Изменения привели к тому, что объектные файлы в Go 1.15 немного больше, чем их эквиваленты 1.14.

Другое улучшение заключается в том, что, поскольку компоновщик теперь по умолчанию использует режим внутренней компоновки для Linux на ARM64, такие конфигурации больше не требуют компоновщика C. 

Был включен новый пакет, time/tzdata. Это можно использовать для встраивания базы данных часовых поясов в программу, которая затем может найти информацию о часовых поясах, даже если база данных часовых поясов недоступна в локальной системе.

Улучшения во время выполнения означают, что выделение небольших объектов теперь работает намного лучше при большом количестве ядер и имеет меньшую задержку в худшем случае, а преобразование небольшого целочисленного значения в значение интерфейса больше не вызывает выделения.


Добавить комментарий