fix(web-panel): apply 4-color thresholds to largest-block memory meters
This commit is contained in:
@@ -1340,6 +1340,13 @@ const char kWebPanelAppHtml[] PROGMEM = R"HTML(
|
|||||||
if (percent >= 35) return "warn";
|
if (percent >= 35) return "warn";
|
||||||
return "bad";
|
return "bad";
|
||||||
}
|
}
|
||||||
|
function toneForLargestBlockPercent(percent) {
|
||||||
|
if (!Number.isFinite(percent)) return "bad";
|
||||||
|
if (percent >= 75) return "";
|
||||||
|
if (percent >= 55) return "ok";
|
||||||
|
if (percent >= 35) return "warn";
|
||||||
|
return "bad";
|
||||||
|
}
|
||||||
function colorForHeapFreePercent(percent) {
|
function colorForHeapFreePercent(percent) {
|
||||||
const tone = toneForHeapFreePercent(percent);
|
const tone = toneForHeapFreePercent(percent);
|
||||||
if (tone === "ok") return "#6ea43f";
|
if (tone === "ok") return "#6ea43f";
|
||||||
@@ -1511,11 +1518,13 @@ const char kWebPanelAppHtml[] PROGMEM = R"HTML(
|
|||||||
const psramFree = memory.psram_free || 0;
|
const psramFree = memory.psram_free || 0;
|
||||||
const psramMax = memory.psram_max || 0;
|
const psramMax = memory.psram_max || 0;
|
||||||
const heapFreePct = pctRange(heapFree, 0, 128 * 1024);
|
const heapFreePct = pctRange(heapFree, 0, 128 * 1024);
|
||||||
|
const heapLargestPct = pctRatio(heapMax, heapFree);
|
||||||
|
const psramLargestPct = pctRatio(psramMax, psramFree);
|
||||||
return `<section class="hud-card">
|
return `<section class="hud-card">
|
||||||
<h3>Memory</h3>
|
<h3>Memory</h3>
|
||||||
${renderMeter("Heap Free", formatBytes(heapFree), heapFreePct, "total free heap", toneForHeapFreePercent(heapFreePct))}
|
${renderMeter("Heap Free", formatBytes(heapFree), heapFreePct, "total free heap", toneForHeapFreePercent(heapFreePct))}
|
||||||
${renderMeter("Heap Largest Block", formatBytes(heapMax), pctRatio(heapMax, heapFree), "largest alloc vs free", false)}
|
${renderMeter("Heap Largest Block", formatBytes(heapMax), heapLargestPct, "largest alloc vs free", toneForLargestBlockPercent(heapLargestPct))}
|
||||||
${renderMeter("PSRAM Largest Block", formatBytes(psramMax), pctRatio(psramMax, psramFree), "largest alloc vs free", false)}
|
${renderMeter("PSRAM Largest Block", formatBytes(psramMax), psramLargestPct, "largest alloc vs free", toneForLargestBlockPercent(psramLargestPct))}
|
||||||
<div class="metric-grid">
|
<div class="metric-grid">
|
||||||
${renderMetric("Heap Free", formatBytes(heapFree))}
|
${renderMetric("Heap Free", formatBytes(heapFree))}
|
||||||
${renderMetric("Heap Min", formatBytes(memory.heap_min || 0))}
|
${renderMetric("Heap Min", formatBytes(memory.heap_min || 0))}
|
||||||
|
|||||||
Reference in New Issue
Block a user