mirror of
https://github.com/esphome/esphome.git
synced 2025-10-31 23:21:54 +00:00
tweak
This commit is contained in:
@@ -9,8 +9,8 @@ void RuntimeStatsCollector::record_component_time(Component *component, uint32_t
|
|||||||
if (!this->enabled_ || component == nullptr)
|
if (!this->enabled_ || component == nullptr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
const char *component_source = component->get_component_source();
|
// Use component pointer directly as key - no string operations
|
||||||
this->component_stats_[component_source].record_time(duration_ms);
|
this->component_stats_[component].record_time(duration_ms);
|
||||||
|
|
||||||
// If next_log_time_ is 0, initialize it
|
// If next_log_time_ is 0, initialize it
|
||||||
if (this->next_log_time_ == 0) {
|
if (this->next_log_time_ == 0) {
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ class ComponentRuntimeStats {
|
|||||||
|
|
||||||
// For sorting components by run time
|
// For sorting components by run time
|
||||||
struct ComponentStatPair {
|
struct ComponentStatPair {
|
||||||
std::string name;
|
Component *component;
|
||||||
const ComponentRuntimeStats *stats;
|
const ComponentRuntimeStats *stats;
|
||||||
|
|
||||||
bool operator>(const ComponentStatPair &other) const {
|
bool operator>(const ComponentStatPair &other) const {
|
||||||
@@ -116,12 +116,13 @@ class RuntimeStatsCollector {
|
|||||||
|
|
||||||
// Log top components by period runtime
|
// Log top components by period runtime
|
||||||
for (const auto &it : stats_to_display) {
|
for (const auto &it : stats_to_display) {
|
||||||
const std::string &source = it.name;
|
// Only get component name when actually logging
|
||||||
|
const char *source = it.component->get_component_source();
|
||||||
const ComponentRuntimeStats *stats = it.stats;
|
const ComponentRuntimeStats *stats = it.stats;
|
||||||
|
|
||||||
ESP_LOGI(RUNTIME_TAG, " %s: count=%" PRIu32 ", avg=%.2fms, max=%" PRIu32 "ms, total=%" PRIu32 "ms",
|
ESP_LOGI(RUNTIME_TAG, " %s: count=%" PRIu32 ", avg=%.2fms, max=%" PRIu32 "ms, total=%" PRIu32 "ms", source,
|
||||||
source.c_str(), stats->get_period_count(), stats->get_period_avg_time_ms(),
|
stats->get_period_count(), stats->get_period_avg_time_ms(), stats->get_period_max_time_ms(),
|
||||||
stats->get_period_max_time_ms(), stats->get_period_time_ms());
|
stats->get_period_time_ms());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log total stats since boot
|
// Log total stats since boot
|
||||||
@@ -134,11 +135,12 @@ class RuntimeStatsCollector {
|
|||||||
});
|
});
|
||||||
|
|
||||||
for (const auto &it : stats_to_display) {
|
for (const auto &it : stats_to_display) {
|
||||||
const std::string &source = it.name;
|
// Only get component name when actually logging
|
||||||
|
const char *source = it.component->get_component_source();
|
||||||
const ComponentRuntimeStats *stats = it.stats;
|
const ComponentRuntimeStats *stats = it.stats;
|
||||||
|
|
||||||
ESP_LOGI(RUNTIME_TAG, " %s: count=%" PRIu32 ", avg=%.2fms, max=%" PRIu32 "ms, total=%" PRIu32 "ms",
|
ESP_LOGI(RUNTIME_TAG, " %s: count=%" PRIu32 ", avg=%.2fms, max=%" PRIu32 "ms, total=%" PRIu32 "ms", source,
|
||||||
source.c_str(), stats->get_total_count(), stats->get_total_avg_time_ms(), stats->get_total_max_time_ms(),
|
stats->get_total_count(), stats->get_total_avg_time_ms(), stats->get_total_max_time_ms(),
|
||||||
stats->get_total_time_ms());
|
stats->get_total_time_ms());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -149,7 +151,7 @@ class RuntimeStatsCollector {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::map<std::string, ComponentRuntimeStats> component_stats_;
|
std::map<Component *, ComponentRuntimeStats> component_stats_;
|
||||||
uint32_t log_interval_;
|
uint32_t log_interval_;
|
||||||
uint32_t next_log_time_;
|
uint32_t next_log_time_;
|
||||||
bool enabled_;
|
bool enabled_;
|
||||||
|
|||||||
Reference in New Issue
Block a user