You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中如何测量应用在Page Cache层的执行时间?

测量Android应用在Page Cache层的执行时间

一、简化版fTrace操作(聚焦目标进程与事件)

fTrace日志复杂是因为默认会抓取所有进程的全量事件,通过过滤可以大幅简化:

  1. 先挂载tracefs(部分设备可能已自动挂载):
    adb shell mount -t tracefs nodev /sys/kernel/tracing
    
  2. 启用Page Cache核心相关事件:
    adb shell echo 1 > /sys/kernel/tracing/events/mm_page_alloc/enable
    adb shell echo 1 > /sys/kernel/tracing/events/mm_page_free/enable
    adb shell echo 1 > /sys/kernel/tracing/events/filemap/enable
    
  3. 锁定目标应用进程,先获取应用PID:
    adb shell pidof com.your.app.package
    
    将获取到的PID写入过滤规则:
    adb shell echo <你的应用PID> > /sys/kernel/tracing/set_ftrace_pid
    
  4. 启动/停止追踪并导出日志:
    # 开始追踪
    adb shell echo 1 > /sys/kernel/tracing/tracing_on
    # 操作你的应用,触发Page Cache相关逻辑
    # 停止追踪
    adb shell echo 0 > /sys/kernel/tracing/tracing_on
    # 导出仅目标进程的日志
    adb shell cat /sys/kernel/tracing/trace | grep <你的应用PID>
    
    导出的日志中每个事件都带时间戳,可直接计算同一操作的起止时间差。

二、Systrace可视化追踪(新手友好)

Systrace将内核trace数据转化为可视化时间线,无需直接分析原始日志:

  1. 确保设备开启USB调试,执行以下命令(需提前配置好Android SDK的systrace环境):
    python3 systrace.py -t 10 -a com.your.app.package memory
    
    其中-t 10表示追踪10秒,-a指定目标应用包名,memory过滤内存相关事件(包含Page Cache操作)。
  2. 追踪结束后会生成HTML文件,用浏览器打开后,搜索pagecache或filemap即可定位相关事件,鼠标悬停可查看时间戳,直接计算耗时。

三、Perfetto官方工具(更直观的现代方案)

Perfetto是Android推荐的新一代性能分析工具,对Page Cache的追踪做了优化:

  • 打开设备「开发者选项」→「系统追踪」
  • 勾选「内存」分类下的「文件页缓存」相关选项,指定目标应用包名
  • 点击「开始追踪」,操作应用后点击「停止」,导出追踪文件
  • 用Perfetto界面加载文件,筛选page_cache相关事件,可直观查看时间线、事件耗时及关联流程

内容的提问来源于stack exchange,提问作者Shazer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 05:45:07