Watch performance on a real device. The Perf Monitor is a live on-device HUD showing FPS, jank, CPU, and memory while you use the app — streamed to the Buoy Desktop dashboard so you can watch it full-size while you drive the phone.
The React Native build of this tool, running here on mock data. The Flutter port ships the same panels — walk the tour, or skip it and start tapping.
Not a video — this is the shipped Bench tool on mock data. JS FPS, UI FPS, CPU, and memory stream while you navigate /products.
flutter pub add buoy_perf_monitorPure Dart — no native libraries, no FFI, no platform channels, no rebuild. Using the buoy umbrella? It's already registered. Standalone:
import 'package:buoy_perf_monitor/buoy_perf_monitor.dart';
void main() {
if (kDebugMode) registerBuoyPerfMonitor();
runApp(const MyApp());
}
import 'package:buoy_perf_monitor/buoy_perf_monitor.dart';
void main() {
if (kDebugMode) registerBuoyPerfMonitor();
runApp(const MyApp());
}
Open the PERF tool from the floating dial to see live metrics and toggle the HUD.
SchedulerBinding.addTimingsCallback: build (Dart UI thread) and raster (GPU thread) frame timings. FPS is activity-gated: an idle Flutter app renders no frames, so the HUD shows — at rest — honest, not a fake 60.dart:io's ProcessInfo.currentRss, sampled continuously even while the UI is still./proc/self/stat on Android (no pure-Dart source exists on iOS yet).Benchmarking and batch reports — recorded, comparable runs with ranked reports, like the React Native Bench tool — plus Dart Top, a "what's eating the thread" profiler. Vote on the roadmap.
Add buoy_perf_monitor and call registerBuoyPerfMonitor() — a live on-device HUD reports build (Dart UI thread) and raster (GPU thread) frame timings from SchedulerBinding.addTimingsCallback, plus memory (RSS) and, on Android, CPU. It streams to Buoy Desktop so you can watch it full-size while you drive the phone.
FPS is activity-gated. An idle Flutter app renders no frames, so the HUD shows — at rest rather than a fake 60.
No — it's pure Dart. No native libraries, no FFI, no platform channels, and no rebuild.