首页 > 其他分享 >tracer ftrace笔记(17)——atrace命令抓trace

tracer ftrace笔记(17)——atrace命令抓trace

时间:2023-05-27 16:44:31浏览次数:44  
标签:gfx ftrace trace 17 -- atrace adb 跟踪 async

一、atrace命令解析

1. 帮助信息

# atrace -h

用法:usage: atrace [options] [categories...]

选项包括:
   -a appname        为逗号分隔的 cmdlines 列表启用应用程序级跟踪; * 是匹配任何进程的通配符
   -b N              使用大小为 N KB 的跟踪缓冲区
   -c                跟踪到循环缓冲区
   -f filename       使用写在文件中的类别作为一行中的空格分隔值
   -k fname,...      跟踪列出的内核函数. 实测 atrace -k cpu_stopper_thread/workqueue_execute_start 都失败。
   -n                忽略信号
   -s N              在跟踪前休眠 N 秒 [默认 0]
   -t N              跟踪 N 秒 [默认 5]
   -z                压缩trace dump
   --async_start     开始循环跟踪并立即返回
   --async_dump      转储循环跟踪缓冲区的当前内容
   --async_stop      停止跟踪并转储循环跟踪缓冲区的当前内容
   --stream          在进入跟踪缓冲区时流式跟踪到标准输出。注意:这可能会占用大量 CPU 时间,最好用于测量不受 CPU 性能影响的事物,例如页面缓存使用情况。
   --list_categories 列出可用的跟踪类别
  -o filename        将跟踪写入指定文件而不是标准输出。

2. 支持抓取的条目

# atrace --list_categories
         gfx - Graphics
       input - Input
        view - View System
     webview - WebView         //会显示什么内容?
          wm - Window Manager
          am - Activity Manager
          sm - Sync Manager
       audio - Audio
       video - Video
      camera - Camera
         hal - Hardware Modules
         res - Resource Loading
      dalvik - Dalvik VM
          rs - RenderScript
      bionic - Bionic C Library
       power - Power Management
          pm - Package Manager
          ss - System Server
    database - Database
     network - Network
         adb - ADB
    vibrator - Vibrator
        aidl - AIDL calls
       nnapi - NNAPI
         rro - Runtime Resource Overlay
         pdx - PDX services
       sched - CPU Scheduling
         irq - IRQ Events
      irqoff - IRQ-disabled code section tracing
  preemptoff - Preempt-disabled code section tracing
         i2c - I2C Events
        freq - CPU Frequency
        idle - CPU Idle
        disk - Disk I/O
         mmc - eMMC commands
        sync - Synchronization
       workq - Kernel Workqueues
  memreclaim - Kernel Memory Reclaim
  regulators - Voltage and Current Regulators
  binder_driver - Binder Kernel driver
  binder_lock - Binder global lock trace
   pagecache - Page cache
      memory - Memory
     thermal - Thermal event
         gfx - Graphics (HAL)
         ion - ION allocation (HAL)

 

二、atrace使用

1. 常用抓取命令配置

adb shell atrace -c -b 20480 --async_start gfx input view webview wm am sched idle freq disk workq

adb shell atrace -c -b 20480 --async_stop gfx input view webview wm am sched idle freq disk workq -o /sdcard/test_webview.trace


2. 可以检索某项trace

adb shell "atrace gfx -b 20480 -t 1 | grep releaseBufferCallbackLocked"


3. 可不间断循环抓取

//开始:
adb shell atrace -c -b 10240 --async_start gfx

//循环输出
adb shell atrace -c -b 10240 --async_dump gfx > a1.trace
adb shell atrace -c -b 10240 --async_dump gfx > a2.trace
...

//停止
adb shell atrace -c -b 10240 --async_stop

 

标签:gfx,ftrace,trace,17,--,atrace,adb,跟踪,async
From: https://www.cnblogs.com/hellokitty2/p/17436943.html

相关文章

  • CF1754D
    题目还是比较简单的。根据\(i!\times(i+1)=(i+1)!\),所以可以对于从\(1\simx-1\)的所有数进行判断,记\(cnt[i]\)表示\(i!\)的数量。如果\(cnt[i]\mod(i+1)\)不是\(0\),那么肯定是无解的了,否则需要将\(cnt[i]\div(i+1)\)进位到\(cnt[i+1]\)。#include<cstdio>using......
  • CF1754C2
    题目这道题与C1相比就多了\(0\),所以做法是几乎一致的。C1是有\(n\)为奇数无解,但这道题需要统计一下非\(0\)数的个数根据这个判断是否有解。然后就是相邻两个非\(0\)数之间的关系了。如果这个两个数符号相同,那么把它们中间的最后一个\(0\)给后者,然后其他\(0\)浪费......
  • CF1754C1
    题目首先,如果有奇数个数,那么正负\(1\)肯定不能完全抵消,无解。如果有偶数个数,必定有解,构造方案:对于每两个位置,如果相同,将这两个数划分为\(1\)组。否则,将两个数各划分为\(1\)组。这样,对于第一种,这个区间是\(0\),对于第二种,这两个区间的和是\(0\),显然符合题意。#inclu......
  • JOISC 2017 题解
    JOISC2017Day1开荒者Cultivation首先进行转化,转化为对于每个点\(x,y\),将其扩成一个左上角为\((x-a,y-c)\)右下角为\((x+b,y+d)\)的矩形后覆盖整个\(R\timesC\)的大举行。首先考虑枚举\(a,b\),那么我们可以得到平面上的几条垂直线段,那么我们可以得到一些关于\(c,d\)......
  • 1017 A除以B(C++)
    一、问题描述:本题要求计算 A/B,其中 A 是不超过1000位的正整数,B 是1位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。输入格式:输入在一行中依次给出 A 和 B,中间以1空格分隔。输出格式:在一行中依次输出 Q 和 R,中间以1空格分隔。输入样例:123......
  • HDU 1176 免费馅饼(简单动态规划)
    传送门这道题是中文描述的,我相信大家都肯定能够看得懂(滑稽),思路上呢大概就是一个升级版的数塔(点我去看数塔)既然是动态规划问题所以首先肯定要先找出来状态转移方程,我找到的状态转移方程就是a[i][j]+=max(max(a[i+1][j+1],a[i+1][j]),a[i+1][j-1]),其中a[i][j]就是表示第i时刻在k位......
  • POJ 1797 Heavy Transportation(迪杰斯特拉最短路变形)
    传送门题意分析:Hugo想要扩展他的公司,他有起重机要到目的地,到达目的地有很多条路径,但是,每一条路都有相应承重量,现在需要找出到达目的地的最大承重道路的承重质量。解题分析:首先,每一条路径的承重量取决于承重量最小的那条道路(短板效应),所以就是找所有路径的最小值,然后选择最小值最大的......
  • POJ 1753 Flip Game(枚举+递归)
    传送门思路是别人的,自己理解了半天,真是渣渣。对于自己,路还长,年轻人。对任意一个格子来说,翻动偶数次等于没翻,翻动奇数次等于翻一次,所以只需考虑翻一次的情况。一共16个格子,每个格子只有翻和不翻,所以最多16步,最少0步,题目要求最少的步数,所以0——>16枚举,看哪一步先成功就是最优解。使......
  • 17.solidwork显示隐藏妙用
    1.选择内部零部件-选择隐藏    2.也可选择其他状态 ......
  • RHEL8使用iSCSI部署网络存储-Linux就这么学17
        本章首先介绍计算机硬件存储设备的不同接口的优缺点,并由此切入iSCSI技术主题的讲解。iSCSI技术实现了物理硬盘设备与TCP/IP网络协议的相互结合,使得用户能够通过互联网方便地访问远程机房提供的共享存储资源。我们将学习在Linux系统上部署iSCSI服务端程序,并分别......