upd heap monitoring

This commit is contained in:
Yurii
2023-12-17 13:18:42 +03:00
parent 7149f52d62
commit 8875fd019a

View File

@@ -166,17 +166,19 @@ protected:
return;
}
#if defined(ARDUINO_ARCH_ESP32)
uint8_t heapFrag = 0;
#else
uint8_t heapFrag = ESP.getHeapFragmentation();
#endif
unsigned int minFreeHeapSizeDiff = 0;
#if defined(ARDUINO_ARCH_ESP32)
unsigned int currentMinFreeHeapSize = ESP.getMinFreeHeap();
if (currentMinFreeHeapSize < this->minFreeHeapSize) {
minFreeHeapSizeDiff = this->minFreeHeapSize - currentMinFreeHeapSize;
this->minFreeHeapSize = currentMinFreeHeapSize;
}
#else
if (freeHeapSize < this->minFreeHeapSize) {
minFreeHeapSizeDiff = this->minFreeHeapSize - freeHeapSize;
this->minFreeHeapSize = freeHeapSize;
}
#endif
unsigned int minMaxFreeBlockSizeDiff = 0;
if (maxFreeBlockSize < this->minMaxFreeHeapBlockSize) {
@@ -184,10 +186,11 @@ protected:
this->minMaxFreeHeapBlockSize = maxFreeBlockSize;
}
uint8_t heapFrag = 100 - maxFreeBlockSize * 100.0 / freeHeapSize;
if (millis() - this->lastHeapInfo > 20000 || minFreeHeapSizeDiff > 0 || minMaxFreeBlockSizeDiff > 0) {
Log.sverboseln(
"MAIN",
F("Free heap size: %u of %u bytes (min: %u, diff: %u), max free block: %u (min: %u, diff: %u, frag: %hhu)"),
F("Free heap size: %u of %u bytes (min: %u, diff: %u), max free block: %u (min: %u, diff: %u, frag: %hhu%%)"),
freeHeapSize, this->heapSize, this->minFreeHeapSize, minFreeHeapSizeDiff, maxFreeBlockSize, this->minMaxFreeHeapBlockSize, minMaxFreeBlockSizeDiff, heapFrag
);
this->lastHeapInfo = millis();