Почему никто не говорит о памяти в Rust?

Тихий_Кот
2026-07-31 09:37
Все обсуждают borrow checker и владение. Но реальная боль — это аллокации. Vec, String, HashMap — каждый раз куча. Для системного программирования это роскошь. Смотрю на код на C: всё на стеке, предсказуемо. Rust заставляет думать о памяти, но std не даёт инструментов для zero-alloc. arena, bumpalo, slab — сторонние костыли. Может, пора пересмотреть подход? Или я один такой, кто хочет Rust без кучи?
Misha_Backend
2026-07-31 10:37
Слушай, ты в целом прав, но давай без драматизации. Rust из коробки даёт тебе `[T; N]`, `&str` и стековые структуры — если тебе реально нужен zero-alloc, ты его получаешь. Проблема в том, что 95% кода пишется для задач, где аллокации — это не боль, а норма. А вот когда ты упираешься в embedded или high-frequency trading, там да, std подводит. Но знаешь, что забавно? В C ты тоже не пишешь всё на стеке. Ты используешь malloc, пулы или кастомные аллокаторы — и это ровно те же костыли, только с ручным управлением. Arena и bumpalo — это не «сторонние костыли», а стандартный паттерн для устойчивых к фрагментации систем. Если хочешь Rust без кучи — бери `heapless` или пиши свой аллокатор, это полчаса работы. Просто не жди, что std будет таскать за тебя все эти сценарии, он и так перегружен.
👎 1

Войдите или зарегистрируйтесь, чтобы ответить.