Performance Monitor

Real-time system and per-app performance monitoring. Track CPU, memory, FPS, network I/O, battery, and temperature with process-level memory breakdown.

Performance Monitor

Overview

6 Metric Cards

CPU usage, memory, FPS, network I/O, battery level, and CPU temperature at a glance.

Auto-Monitoring

Monitoring starts automatically when a device is selected. No manual start needed.

Process List

All running app processes with CPU usage, memory, user, and PID.

Process Detail

Click any process for detailed memory breakdown chart and heap analysis.

System Metrics

Performance metric cards showing CPU, memory, FPS, network, battery and temperature

Six metric cards displayed in a row at the top of the page:

MetricValueSub-infoAlert Threshold
CPUSystem-wide usage %Core countRed when > 80%
MemorySystem memory usage %Used/Total MBRed when > 85%
FPSCurrent frame rate
NetworkCombined RX+TX KB/s↓RX ↑TX breakdown
BatteryBattery level %Temperature °C
CPU TempTemperature °CRed when > 70°C
Note: Each card has a colored left border for quick visual identification. When a metric exceeds its alert threshold, the card turns red with an exclamation indicator.

Performance Snapshot

Click the camera icon in the header to take a one-time performance snapshot. This collects CPU, memory, network, and battery data in parallel without requiring continuous monitoring.

Note: Snapshots don't include FPS data (which requires continuous monitoring to calculate frame deltas) or the process list.

Running Processes

A scrollable table showing all running app-level processes (system processes like init and surfaceflinger are excluded).

ColumnDefault SortDescription
ProcessPackage name (monospace, copyable)
CPU %Descending ✓Color-coded: red ≥50%, orange ≥20%, blue >0%
MemoryRSS in MB. Color-coded: red ≥500MB, orange ≥200MB, green >0
UserLinux user (e.g., u0_a123)
PIDProcess ID

Process Detail (Expandable)

Click any process row to expand an inline detail panel. Data is fetched via dumpsys meminfo and /proc/<pid>/status (takes 2-3 seconds).

Memory Breakdown Chart

Horizontal bar chart showing PSS (Proportional Set Size) by category:

  • Graphics — GPU memory
  • Code — DEX, OAT, shared libraries
  • Native Heap — C/C++ allocations
  • Java Heap — Dalvik/ART heap
  • Stack — Thread stacks
  • System, Private Other, Unknown

Process Info

FieldDescription
ThreadsThread count
FDsFile descriptor count
ActivitiesAndroid Activity count
ViewsAndroid View count
WebViewsWebView instance count
BindersLocal + proxy binder count
SwapSwap usage in MB
OOMOOM score with classification: Foreground Visible Perceptible Previous Cached

Heap Usage Bars

Progress bars showing allocated/total for Java Heap and Native Heap (e.g., "Java Heap: 21.0 / 32.5 MB").

How Data Is Collected

MetricSource
CPUdumpsys cpuinfo
Memory/proc/meminfo
FPSdumpsys gfxinfo (frame count delta)
Network/proc/net/dev (wlan/eth/rmnet interfaces)
Batterydumpsys battery
Process listdumpsys cpuinfo + ps -A (merged)
Process detaildumpsys meminfo <pid> + /proc/<pid>/status

Default sampling interval is 2 seconds. Up to 300 samples (approximately 10 minutes) are kept in memory.

More Features