mirror of
https://github.com/esphome/esphome.git
synced 2026-09-17 18:18:43 +00:00
942cb0733b67d2e72a65c9a8e908f1ef33ab611f
cleanup_() has a two-line fast path (check to_remove count, return !items_.empty()) with the slow path already out-of-line in cleanup_slow_path_(). Despite `inline` hint, GCC on Xtensa emits it as a separate function, adding unnecessary call overhead on every Scheduler::call() invocation even when there is nothing to clean up. Use ESPHOME_ALWAYS_INLINE to guarantee inlining. Verified on ESP8266: - cleanup_() symbol eliminated from binary - Scheduler::call() grows 4 bytes (inlined fast path) - Net savings: 23 bytes (27-byte out-of-line body removed) - Idle loop path: 1 out-of-line call instead of 2
Description
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Readme
Multiple Licenses
598 MiB
Languages
C++
55.7%
Python
43.7%
C
0.3%
JavaScript
0.2%
