mirror of
https://github.com/esphome/esphome.git
synced 2026-09-24 21:44:04 +00:00
[core] Add CodSpeed C++ benchmarks for protobuf, main loop, and helpers (#14878)
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
#include <benchmark/benchmark.h>
|
||||
|
||||
#include "esphome/core/application.h"
|
||||
|
||||
namespace esphome::benchmarks {
|
||||
|
||||
// Benchmark Application::loop() with no registered components.
|
||||
// App is initialized by original_setup() in main.cpp (code-generated
|
||||
// pre_setup, area/device registration, looping_components_.init).
|
||||
// This measures the baseline overhead of the main loop: scheduler,
|
||||
// timing, before/after loop tasks, and yield_with_select_.
|
||||
static void ApplicationLoop_Empty(benchmark::State &state) {
|
||||
// Set loop interval to 0 so yield_with_select_ returns immediately
|
||||
// instead of sleeping. This benchmarks the loop overhead, not the sleep.
|
||||
App.set_loop_interval(0);
|
||||
for (auto _ : state) {
|
||||
App.loop();
|
||||
}
|
||||
}
|
||||
BENCHMARK(ApplicationLoop_Empty);
|
||||
|
||||
} // namespace esphome::benchmarks
|
||||
Reference in New Issue
Block a user