Карточка Middle Производительность и кеш обновлено

Как сократить аллокации

Вопрос

Назовите приёмы, уменьшающие число выделений памяти.

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

reserve заранее, переиспользование буферов (clear сохраняет ёмкость), std::stringview и std::span вместо копий, SSO для коротких строк, emplaceback и перемещение, пулы и арены (std::pmr::monotonicbufferresource), плоские контейнеры вместо узловых.

Ответ

reserve заранее, переиспользование буферов (clear сохраняет ёмкость), std::string_view и std::span вместо копий, SSO для коротких строк, emplace_back и перемещение, пулы и арены (std::pmr::monotonic_buffer_resource), плоские контейнеры вместо узловых.

Разбор

reserve заранее, переиспользование буферов (clear сохраняет ёмкость), std::string_view и std::span вместо копий, SSO для коротких строк, emplace_back и перемещение, пулы и арены (std::pmr::monotonic_buffer_resource), плоские контейнеры вместо узловых.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.