🍖 Рализация своего ECS движка
💡 Автор статьи решил не сдаваться и полностью переписал архитектуру памяти своей ECS, применив data-oriented design на полную катушку.
❗️ Ключевые моменты статьи:
• compile-time разметка памяти через constexpr — никаких накладных расходов в рантайме
• организация данных в сектора — фиксированные блоки памяти, где компоненты лежат плотно друг к другу
• chunk-аллокатор со степенями двойки вместо делений
• сортировка по entityId для последовательного доступа и дружбы с CPU-префетчером
Основной фокус — как устроить память так, чтобы процессор угадывал ваши намерения и подтягивал данные заранее, превращая случайные обращения в линейное чтение.
Особенно актуально для разработчиков игровых движков и высоконагруженных систем, где каждый cache miss стоит дорого.
👉 Статья
🔹Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹Сайт Proglib
Библиотека C/C++ разработчика
#свежак
Если std::map убивает весь перформанс, cache miss-ы на каждом шагу..., то пора задуматься о ECS подходе. Возможно это то что тебе нужно.
💡 Автор статьи решил не сдаваться и полностью переписал архитектуру памяти своей ECS, применив data-oriented design на полную катушку.
❗️ Ключевые моменты статьи:
• compile-time разметка памяти через constexpr — никаких накладных расходов в рантайме
• организация данных в сектора — фиксированные блоки памяти, где компоненты лежат плотно друг к другу
• chunk-аллокатор со степенями двойки вместо делений
• сортировка по entityId для последовательного доступа и дружбы с CPU-префетчером
Основной фокус — как устроить память так, чтобы процессор угадывал ваши намерения и подтягивал данные заранее, превращая случайные обращения в линейное чтение.
Особенно актуально для разработчиков игровых движков и высоконагруженных систем, где каждый cache miss стоит дорого.
👉 Статья
🔹Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹Сайт Proglib
Библиотека C/C++ разработчика
#свежак
❤2👍2🥰1