| Tool |
Environment |
Strength |
Weakness |
| Chrome DevTools Memory |
Browser, Node via inspect |
Heap snapshots, retainers |
Manual, local |
| Performance monitor |
Browser |
Live heap trend |
Chromium only |
| performance.memory |
Browser |
Programmatic sampling |
Non-standard API |
| node –inspect |
Node |
Same DevTools for server |
Needs attach access |
| v8.writeHeapSnapshot |
Node |
Programmatic snapshots |
Large files |
| clinic.js |
Node |
Doctor, heapprofiler, bubbleprof |
Learning curve |
| memlab |
Browser |
Scenario regression tests |
Setup per scenario |
| Prometheus/Grafana |
Production |
Trend alerting |
Not a root-cause debugger |
| Datadog / New Relic APM |
Production |
Correlates memory + traces |
Cost, less heap detail |
flowchart TD
q1{Where?}
q1 -->|Browser| b1[DevTools snapshot]
q1 -->|Node local| n1[node --inspect]
q1 -->|Production| p1[Metrics dashboard]
b1 --> b2{Repeatable scenario?}
b2 -->|yes| memlab[memlab CI]
n1 --> n2{Need timeline?}
n2 -->|yes| clinic[clinic heapprofiler]
p1 --> alert[Alert on slope]
alert --> local[Reproduce locally]
- This course — concepts + live demos
- DevTools — daily debugging
- examples/node/ — server patterns
- memlab — lock in browser fixes
- Grafana — watch production trends