mirror of
https://github.com/esphome/esphome.git
synced 2026-02-23 09:48:24 -07:00
11095bc15e4f9bd7a990d4b8fc5d41b0b246c8bd
Replace modulo-based ring buffer index advancement with constexpr-dispatched approach: power-of-2 sizes keep modulo (compiler emits single mask instruction), non-power-of-2 sizes use comparison+branch instead of multiply-shift sequences. Benchmarked on real ESP32-C3 (RISC-V) hardware (100k iterations): - SIZE=88 (BLE): 24,120 us -> 6,493 us (3.7x faster) - SIZE=30 (MQTT): 22,816 us -> 6,879 us (3.3x faster) - SIZE=32 (pow2): identical (both use mask) Flash savings on ESP32 Xtensa (BLE proxy build): - push(): 149 -> 133 bytes (-16 B) - pop(): 78 -> 67 bytes (-11 B)
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
459 MiB
Languages
C++
64.1%
Python
35.6%
C
0.2%
