Сокращение времени компиляции Rust: part 2

Несколько месяцев назад мы уже говорили на эту тему. Но с релизом 1.51 добавилась еще одна возможность улучшить время компиляции на macOS благодаря улучшенному подходу к сборке и хранению отладочной информации.

По умолчанию в macOS отладочная информация собирается c помощью инструмента dsymutil, который анализирует двоичный файл и в процессе этого создает ряд дополнительных файлов в директории .dSYM, что могло занимать много времени и дискового пространства. Эта директория помогает найти отладочную информацию во время выполнения.

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

Но недавно обратная трассировка Rust была переключена на использование другого бэкенда, который поддерживает загрузку отладочной информации без запуска dsymutil. В будущем это поведение станет стандартом для macOS, но если хочется использовать его уже сейчас, нужно в Cargo.toml добавить:

[profile.dev]
split-debuginfo = "unpacked"

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