🍖 Как сократить бинарный код и не потерять нужную функциональность
В статье подробно показывают, как оптимизировать бинарный код C++-проекта, чтобы не потерять нужную функциональность, используя только сборочные флаги, правильную работу с шаблонами и альтернативы стандартным инструментам.
📕 Ключевые моменты статьи:
• грамотное применение флагов компилятора и линковки для сокращения бинаря
• замена
• уход от
Основной фокус — практические сценарии уменьшения итогового бинарного файла: что реально помогает, а от чего лучше отказаться, если не хотите усложнять архитектуру, ломать исключения и убирать RTTI.
👉 Статья
Библиотека C/C++ разработчика
#буст
В статье подробно показывают, как оптимизировать бинарный код C++-проекта, чтобы не потерять нужную функциональность, используя только сборочные флаги, правильную работу с шаблонами и альтернативы стандартным инструментам.
📕 Ключевые моменты статьи:
• грамотное применение флагов компилятора и линковки для сокращения бинаря
• замена
std::visit и std::variant на более экономичные паттерны• уход от
std::shared_ptr к unique_ptr ради уменьшения инстанциаций и поддержки чисто-сырого владенияОсновной фокус — практические сценарии уменьшения итогового бинарного файла: что реально помогает, а от чего лучше отказаться, если не хотите усложнять архитектуру, ломать исключения и убирать RTTI.
👉 Статья
Библиотека C/C++ разработчика
#буст
👍2
  STL позволяет полностью контролировать аллокацию памяти через allocators.
✓ Pool allocators для объектов одного размера (быстрее malloc)
✓ Stack allocators для временных данных без обращения к куче
✓ Tracking allocators для профилирования утечек памяти
✓ Aligned allocators для SIMD-оптимизированных структур
✓ std::allocator — дефолтный, работает через new/delete
✓ std::pmr::monotonic_buffer_resource — аллокация из буфера
✓ std::pmr::unsynchronized_pool_resource для многократного переиспользования
✓ std::pmr::polymorphic_allocator для динамической смены стратегии
✓ Реализуй allocate() и deallocate()
✓ Объяви value_type, size_type, difference_type
✓ Не забудь про rebind для типов внутри контейнера
✓ Сделай allocator stateless для оптимизаций
Сравни количество malloc-вызовов через profiler до и после внедрения кастомного allocator. Цель — уменьшить на 50%+.
В game dev кастомные allocators — стандарт. Они значительно ускоряют аллокацию по сравнению с malloc.
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍3🔥2