Rust неявно добавляет #[inline] к derive-реализациям, раздувая бинарники

Rust's derive often implies inline

Автор обнаружил, что Rust автоматически помечает #[inline] методы, сгенерированные через #[derive(...)]. Это почти всегда полезно, но в глубоко вложенных иерархиях ошибок может привести к значительному раздуванию бинарного файла: в проекте uv удалось уменьшить размер примерно на 160 КБ, запретив инлайнинг одной из реализаций Debug с помощью собственного макроса с #[inline(never)].

мы обнаружили, что смогли уменьшить размер бинарного файла uv примерно на 160 КБ, запретив rustc инлайнить данную реализацию Debug.

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

2026-10-07