#bump_allocator — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #bump_allocator, aggregated by home.social.
-
[Перевод] Структуры данных на практике. Глава 17: Структуры данных загрузчиков
Наш загрузчик оказался слишком медленным. Требование было чётким: загружаться менее чем за 500 миллисекунд. Показатели оставались не менее чёткими: 720 миллисекунд. Мы отставали от нужного значения на 44%. Это требование не было «мягким». Загрузчик должен был работать в промышленном контроллере, обязанном реагировать вскоре после включения питания. Каждая секунда времени загрузки — это потерянная продуктивность. В спецификации к изделию был указан максимум в 500 мс. Мы обязаны были их обеспечить. Задача загрузчика была простой: 1. Инициализировать оборудование (UART, SPI, DDR-контроллер) 2. Загрузить ядро из флэш-памяти 3. Спарсить дерево устройств 4. Перейти ко точке входа ядра Реализация казалась логичной: стандартные структуры данных из библиотеки C. Проблема выявилась при профилировании: 45% времени загрузки тратилось на malloc/free! В загрузчике всего с 64 КБ ОЗУ динамическое распределение роняло производительность.