mirror of
https://github.com/esphome/esphome.git
synced 2026-07-11 09:25:34 +00:00
87f37b7c380e40ff1c08e56a40548555b92bbc3c
The previous millis()-based timing had insufficient resolution. Most components complete their loop() in microseconds, but millis() only has 1ms granularity. Components taking <1ms would show either 0ms or 1ms depending on whether a millisecond boundary happened to tick over during execution — essentially random noise rather than useful data. Switch to self-timed micros() per guard (only when USE_RUNTIME_STATS is compiled in — zero cost in production builds). Track internally in microseconds, display in milliseconds with fractional precision. Use uint64_t for total_time_us_ to avoid overflow (uint32_t would wrap after ~10 hours at typical loop rates).
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
529 MiB
Languages
C++
60.1%
Python
39.3%
C
0.3%
JavaScript
0.2%
