在 Flutter 中做好性能监控,核心目标是发现卡顿、内存泄漏、过度绘制、启动慢等问题,并在开发期 + 线上期都具备可观测能力。下面从「工具、指标、实践、架构」四个层面系统讲。
官方性能分析利器,包含:
使用:
flutter pub global activate devtools
flutter devtools
在 App 中开启:
MaterialApp(
showPerformanceOverlay: true,
);
import 'dart:developer';
void myFunction() {
final stopwatch = Stopwatch()..start();
// 业务逻辑
stopwatch.stop();
log('cost: ${stopwatch.elapsedMilliseconds}ms');
}
dependencies:
sentry_flutter: ^7.0.0
await SentryFlutter.init((options) {
options.dsn = 'your-dsn';
options.tracesSampleRate = 1.0;
});
SchedulerBinding.instance.addTimingsCallback((timings) {
for (var t in timings) {
if (t.totalSpan.inMilliseconds > 16) {
reportJank(t.totalSpan.inMilliseconds);
}
}
});
import 'dart:io';
ProcessInfo.currentRss; // 内存占用
final start = DateTime.now();
// push page
final end = DateTime.now();
report(end.difference(start));
监控方式
优化
Selector / Consumer监控
解决
Image.asset(
'xxx',
cacheWidth: 300,
);
ListView.builder监控:
优化:
App
├─ DevTools(开发)
├─ Sentry / 三方(线上)
├─ 自研 Monitor
│ ├─ FPS
│ ├─ Memory
│ ├─ Route Time
│ └─ Exception
└─ 报警 & 看板
Flutter 性能监控 = 开发期用 DevTools + 线上用 Sentry/自研 + 持续关注 FPS / 内存 / 启动 / 异常
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。