cargo build 7 минут на воркспейсе из 60 крейтов — норма в 2026 или мы что-то делаем не так?

Рейтинг: 51% · 4 голосов
Python, Rust, Go, C++, C#, Java, Kotlin: синтаксис, паттерны проектирования, производительность, многопоточность и сравнение языков.
Ответить
Аватара пользователя
corvet
Сообщения: 38
Зарегистрирован: 16 май 2026, 06:36

cargo build 7 минут на воркспейсе из 60 крейтов — норма в 2026 или мы что-то делаем не так?

Сообщение corvet »

Накипело. Воркспейс на ~60 крейтов: бэкенд на axum, sqlx, изрядно кодогенерации через proc-macro. Чистая сборка в CI — семь с лишним минут, инкрементальная после правки в core-крейте — секунд сорок, и это на M3 Pro. Коллеги на офисных машинах с 16 ГБ страдают заметно сильнее: rust-analyzer плюс rustc плюс докер — и своп. Rust 1.96, профили из коробки, ничего не тюнили. Подскажите по своему опыту: что из тюнинга реально работает, а что карго-культ?
👍2 ❤️ 🔥3 😄 🤔1
✔ Лучший ответ сформирован автоматически — navspy
@corvet, Пройдусь по списку того, что внедряли у себя на воркспейсе сопоставимого размера (около 80 крейтов). Первое: cranelift-бэкенд для dev-сборок (на nightly, codegen-backend = "cranelift" в профиле) — минус 30-35% времени кодогена, качество машинного кода для локальной разработки неважно. Второе: параллельный фронтенд -Zthreads=8 — ещё минус 15-20%, тоже пока nightly. Третье: в…
Перейти к ответу →
Аватара пользователя
ansible1337
Сообщения: 11
Зарегистрирован: 17 май 2026, 04:17

Re: cargo build 7 минут на воркспейсе из 60 крейтов — норма в 2026 или мы что-то делаем не так?

Сообщение ansible1337 »

Первым делом — линкер. На линуксе ставьте mold или wild (он сам на Rust написан и уже стабильнее, чем о нём принято думать): в .cargo/config.toml добавляете rustflags = ["-C", "link-arg=-fuse-ld=mold"] — у нас время инкрементальной линковки упало с 12 до 2 секунд. На macOS новый эппловский линкер и так быстрый, там профит скромнее.
👍 ❤️1 🔥 😄 🤔
Аватара пользователя
navspy
Сообщения: 60
Зарегистрирован: 12 май 2026, 02:48

Re: cargo build 7 минут на воркспейсе из 60 крейтов — норма в 2026 или мы что-то делаем не так?

Сообщение navspy »

✔ Лучший ответ — сформирован автоматически
@corvet, Пройдусь по списку того, что внедряли у себя на воркспейсе сопоставимого размера (около 80 крейтов). Первое: cranelift-бэкенд для dev-сборок (на nightly, codegen-backend = "cranelift" в профиле) — минус 30-35% времени кодогена, качество машинного кода для локальной разработки неважно. Второе: параллельный фронтенд -Zthreads=8 — ещё минус 15-20%, тоже пока nightly. Третье: в [profile.dev.package."*"] ставим opt-level = 2 — зависимости компилируются один раз, зато serde и сгенерированный sqlx-код перестают тормозить рантайм тестов. Четвёртое: sccache с кэшем в S3-совместимом хранилище (мы держим в Селектеле) — чистая сборка в CI ужалась с девяти минут до 2:40. И главное, с чего вообще стоит начать: cargo build --timings. У нас выяснилось, что половину критического пути держал один god-крейт с общими типами, который тянули все 80 — распилили его на три, и инкременталка ожила без всякой магии.
👍2 ❤️ 🔥 😄 🤔
Аватара пользователя
stuartng
Сообщения: 9
Зарегистрирован: 13 май 2026, 21:58

Re: cargo build 7 минут на воркспейсе из 60 крейтов — норма в 2026 или мы что-то делаем не так?

Сообщение stuartng »

Сравнение с плюсами — низкая планка. Go собирает сопоставимый по объёму сервис за 15 секунд, и тоже, представьте, без сегфолтов. Боль реальная, и упирается она не только в build: rust-analyzer после ребейза переиндексирует наш воркспейс 3-4 минуты, на ноутбуке с 16 ГБ в это время жить нельзя. Из практичного: в цикле разработки забудьте про cargo build, живите на cargo check, а вместо cargo watch возьмите bacon — он умнее перезапускает проверки и не молотит вхолостую.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
fletchl
Сообщения: 10
Зарегистрирован: 13 май 2026, 04:44

Re: cargo build 7 минут на воркспейсе из 60 крейтов — норма в 2026 или мы что-то делаем не так?

Сообщение fletchl »

Семь минут чистой сборки — это вы избалованные, вообще-то. Я с плюсов пришёл: проект на CMake собирался 40 минут, и никто не ныл, наливали кофе и шли на стендап. Цена за то, что после успешной компиляции оно просто работает без сегфолтов и UB — честная.
👍2 ❤️ 🔥1 😄 🤔
Аватара пользователя
mvdelu
Сообщения: 17
Зарегистрирован: 13 май 2026, 07:23

Re: cargo build 7 минут на воркспейсе из 60 крейтов — норма в 2026 или мы что-то делаем не так?

Сообщение mvdelu »

Раз у вас sqlx — отдельно проверьте, что включён offline-режим: cargo sqlx prepare и каталог .sqlx закоммичен в репу. Иначе макросы на каждую пересборку ходят в живую базу, и эти походы отлично маскируются под «медленную компиляцию». Нам одно это срезало минуту с лишним.
👍1 ❤️1 🔥 😄 🤔1
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Языки программирования»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость