From 986d0cfef133d92b5b8dd2110bbcd849a9e83e79 Mon Sep 17 00:00:00 2001 From: Alberto Nidasio <alberto.nidasio@skywarder.eu> Date: Wed, 20 Jul 2022 11:29:41 +0200 Subject: [PATCH] [CPUMeter] Added stack and heap statistics --- src/shared/diagnostic/CpuMeter/CpuMeter.cpp | 6 +++++- src/shared/diagnostic/CpuMeter/CpuMeterData.h | 12 ++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/shared/diagnostic/CpuMeter/CpuMeter.cpp b/src/shared/diagnostic/CpuMeter/CpuMeter.cpp index 20da1e5af..57990c49f 100644 --- a/src/shared/diagnostic/CpuMeter/CpuMeter.cpp +++ b/src/shared/diagnostic/CpuMeter/CpuMeter.cpp @@ -45,7 +45,11 @@ static volatile unsigned int update = 0; CpuMeterData getCpuStats() { Lock<FastMutex> l(utilizationMutex); - return CpuMeterData(TimestampTimer::getTimestamp(), utilization.getStats()); + return CpuMeterData(TimestampTimer::getTimestamp(), utilization.getStats(), + MemoryProfiling::getAbsoluteFreeHeap(), + MemoryProfiling::getCurrentFreeHeap(), + MemoryProfiling::getAbsoluteFreeStack(), + MemoryProfiling::getCurrentFreeStack()); } void resetCpuStats() { utilization.reset(); } diff --git a/src/shared/diagnostic/CpuMeter/CpuMeterData.h b/src/shared/diagnostic/CpuMeter/CpuMeterData.h index f091425f9..a28b62a3a 100644 --- a/src/shared/diagnostic/CpuMeter/CpuMeterData.h +++ b/src/shared/diagnostic/CpuMeter/CpuMeterData.h @@ -36,12 +36,20 @@ struct CpuMeterData float stdDev = 0; ///< Standard deviation of dataset. uint32_t nSamples = 0; ///< Number of samples. + uint32_t minFreeHeap = 0; + uint32_t freeHeap = 0; + uint32_t minFreeStack = 0; + uint32_t freeStack = 0; + CpuMeterData() {} - explicit CpuMeterData(uint64_t timestamp, StatsResult stats) + explicit CpuMeterData(uint64_t timestamp, StatsResult stats, + uint32_t freeHeap, uint32_t minFreeHeap, + uint32_t minFreeStack, uint32_t freeStack) : timestamp(timestamp), minValue(stats.minValue), maxValue(stats.maxValue), mean(stats.mean), stdDev(stats.stdDev), - nSamples(stats.nSamples) + nSamples(stats.nSamples), minFreeHeap(minFreeHeap), + freeHeap(freeHeap), minFreeStack(minFreeStack), freeStack(freeStack) { } -- GitLab