Бюджет Flash и RAM

Куда уходят 1 МБ flash и ~23 КБ кучи, и как удержать сборку ниже 60% flash / 65% RAM.

Бюджет Flash

Флэш ESP8285 на 1 МБ в основном занят WebUI: собранный клиентский бандл ~160 КБ в сжатом виде (~16% флэша) после tree-shaking. Рантайм float (_scanf_float, _printf_float, _dtoa_r, _strtod_l …) — ~9,7 КБ, реально, но не главный рычаг. Текущая база ~68,6% флэша; цель 60% требует сокращения на ~83 КБ, и WebUI — единственный достаточно большой рычаг для этого.

Бюджет RAM

ESP8285 предоставляет примерно 23 КБ кучи. Сохранение конфигурации никогда не должно выделять большой JSON-документ в куче — сохранитель конфигурации орнитоптера пишет напрямую в LittleFS, чтобы не исчерпать кучу и не перезагрузиться посреди опроса. Держите DynamicJsonDocument вне горячего пути; предпочитайте буферы стека и прямую запись.

Советы по оптимизации

Сборочные цели

Цель Бюджет флэша Бюджет ОЗУ
PteronautOS_ESP8285_2400_RX ≤ 60% ≤ 65%

Манифест запрещает превышать 60% флэша / 65% ОЗУ, чтобы оставить запас на расширение. Измеряйте после каждой функции; зелёная сборка не является живой, пока не прошита и не прочитан её лог загрузки.