Article / 2026/05/31
性能优化 (三十四) 卡顿介绍及优化工具 选择
性能优化 (三十四) 卡顿介绍及优化工具 选择 的技术笔记。
卡顿介绍及优化工具 选择
背景介绍
- 很多性能问题不易被发现,但是卡顿很容易被直观感受
- 卡顿问题难以定位
- 卡顿问题难在哪里
- 产生原因错综复杂:代码、内存、绘制、IO?
- 不易复现:当时场景相关
CPU Profiler
-
图形的形式展示执行时间、调用栈等
-
信息全面,包含所有线程
-
运行时开销严重,整体都会变慢
-
使用方式
- Debug.startMethodTracing("")
- Debug.stopMethodTracing();
- 生成的文件在SD卡:Android/data/packagename/files
Systrace
- 监控和跟踪API调用、线程的运行情况,生成Html报告
- API18以上使用,推荐TraceCompat
- 使用方式
- python systrace.py -t 10[other-options] [categories]
- https://developer.android.com/studio/command-line/systrace#command_options
- 优点
- 轻量级,开销小
- 直观反映CPU利用率
- 给出建议
StrictMode
-
严格模式,Android提供的一种运行时检测机制
-
方便强大,容易被忽略
-
包含:线程策略和虚拟机策略检测
-
线程策略
- 自定义的耗时调用,detectCustomSlowCalls()
- 磁盘读取操作,detectDistReads
- 网络操作,detectNetwork
- 虚拟机策略
- Activity泄漏,detectActivityLeaks()
- Sqlite对象泄漏,detectLeakedSqlListObjects
- 检测实力数量,setClassInstanceLimit();
Giscus 未启用:请在
src/site.config.ts中配置 repoId 与 categoryId。