From c4a2086244c69e4586859046c31cb17d2bd068c4 Mon Sep 17 00:00:00 2001 From: Jesse Vincent Date: Mon, 2 Feb 2026 15:50:42 -0800 Subject: [PATCH] perf: Enable Link Time Optimization (LTO) Add `build_unflags = -fno-lto` to remove ESP-IDF's default LTO-off flag, and add `-flto` to build_flags. | Metric | Without LTO | With LTO | Delta | % Change | |---------------|----------------------|----------------------|--------------|----------| | firmware.bin | 6,371,440 B | 6,241,072 B | -130,368 B | -2.0% | | firmware.elf | 39,599,948 B | 22,893,308 B | -16,706,640 B| -42.2% | | Flash used | 6,218,928 B (94.9%) | 6,117,722 B (93.3%) | -101,206 B | -1.6% | | RAM used | 106,508 B (32.5%) | 105,964 B (32.3%) | -544 B | -0.5% | --- platformio.ini | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platformio.ini b/platformio.ini index e8574470..c252432b 100644 --- a/platformio.ini +++ b/platformio.ini @@ -18,7 +18,9 @@ board_upload.flash_size = 16MB board_upload.maximum_size = 16777216 board_upload.offset_address = 0x10000 +build_unflags = -fno-lto build_flags = + -flto -DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=1 -DMINIZ_NO_ZLIB_COMPATIBLE_NAMES=1