FFORGE//RS
← Маршрут

rust / УРОВЕНЬ 4

Flamegraph из мелких аллокаций

ОЦЕНКА40 МИН
01

ТЕОРИЯ / ВОСПРОИЗВЕДЕНИЕ

Что нужно восстановить

  • Преобразовать allocation profile в точечное изменение
  • Заранее выделить String и добавлять borrowed slices

Сначала профилируйте

Горячий allocator-frame часто означает временное владение, а не дорогую бизнес-логику. Подтвердите call path и workload, затем уберите аллокации в узком ответственном слое.

Capacity — не контракт корректности

`String::with_capacity` снижает reallocations при известном размере, но не должен менять separators, UTF-8 или поведение пустого ввода. Измеряйте только контролируемый участок.

КОНТРОЛЬНАЯ ТОЧКА

Profile показывает временные String внутри join-loop. Какое первое изменение наиболее точечно?

ISOLATED RUST 1.96
src/lib.rsРЕДАКТИРОВАНИЕ

02 / ПРОФИЛИРОВАНИЕ

Разберите профиль и исправьте причину

Перепишите `join_tags` с тем же comma-separated output и не более одной аллокации для непустого ввода. Не используйте `join`, `format!` и owned String на tag.

Инициализация редактора…
ОБЛАЧНЫЙ SANDBOXсеть выключена · 256 МБ · 12 с
1 / 64 KB
ВЫВОД
Runner ждёт отправки кода.