mirror of
https://github.com/esphome/esphome.git
synced 2026-09-03 19:46:02 +00:00
92106d2a4d6fa47094fe030209358b8a14c3b3b6
On 32-bit targets, GCC does not optimize 64-bit constant division into a multiply-by-reciprocal and instead calls __udivdi3 (software 64-bit divide). This replaces the division with Euclidean decomposition using a single 32-bit divide that GCC optimizes into a multiply-by-reciprocal. Benchmarked on ESP32 classic (Xtensa LX6, 240 MHz): __udivdi3: 628-705 ns fast_div1000_32: 269-279 ns (2.3-2.6x faster) millis() is called ~21 times per main loop iteration. At ~350 ns savings per call, this saves ~7 us per loop iteration.
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
582 MiB
Languages
C++
56%
Python
43.4%
C
0.3%
JavaScript
0.2%
