Systrace系列2 —— 预备知识

news/2024/10/18 5:49:25/

本文主要是讲解一些分析 Systrace 的预备知识, 主要bao'ku如何查看 Systrace 中的线程状态 , 如何对线程的唤醒信息进行分析, 如何解读信息区的数据, 以及介绍了常用的快捷键. 通过本篇文章的学习, 相信你可以掌握进程和线程相关的一些信息, 也知道如何查看复杂的 Systrace 中包含的关键信息。

线程状态查看

Systrace 会用不同的颜色来标识不同的线程状态, 在每个方法上面都会有对应的线程状态来标识目前线程所处的状态,通过查看线程状态我们可以知道目前的瓶颈是什么, 是 cpu 执行慢还是因为 Binder 调用, 又或是进行 io 操作, 又或是拿不到 cpu 时间片

线程状态主要有下面几个

绿色 : 运行中(Running)

只有在该状态的线程才可能在 cpu 上运行。而同一时刻可能有多个线程处于可执行状态,这些线程的 task_struct 结构被放入对应 cpu 的可执行队列中(一个线程最多只能出现在一个 cpu 的可执行队列中)。调度器的任务就是从各个 cpu 的可执行队列中分别选择一个线程在该cpu 上运行

作用:我们经常会查看 Running 状态的线程,查看其运行的时间,与竞品做对比,分析快或者慢的原因:

  1. 是否频率不够?
  2. 是否跑在了小核上?
  3. 是否频繁在 Running 和 Runnable 之间切换?为什么?
  4. 是否频繁在 Running 和 Sleep 之间切换?为什么?
  5. 是否跑在了不该跑的核上面?比如不重要的线程占用了超大核


http://www.ppmy.cn/news/80310.html

相关文章

从0到1无比流畅的React入门教程

无比流畅的React入门教程TOC React 是什么 简介 用于构建 Web 和原生交互界面的库React 用组件创建用户界面通俗来讲:是一个将数据渲染为HTML视图的开源JS库 其他信息 Facebook 开发,并且开源 为什么使用React? 原生JS使用DOM-API修改UI代码很繁…

文生图关键问题探索:个性化定制和效果评价

文生图(Text-to-Image Generation)是AIGC(AI Generated Content,人工智能生成内容)的一个主要方向。近年来,文生图模型的效果和质量得到飞速提升,投资界和研究界都在密切关注文生图模型的进展。…

图的创建——C语言描述

图的创建——C语言描述 文章目录 图的创建——C语言描述0 测试用例框架1 定义2 邻接矩阵法2.1 数据结构 2.2 构建图代码(2)测试用例(3)**打印结果** 0 测试用例框架 https://blog.csdn.net/m0_59469991/article/details/12713711…

关于HTTP请求GET和POST的区别

关于HTTP请求GET和POST的区别 1.GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头<request-line>中) GET:特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K35)。对于…

【Python sqlite3】零基础也能轻松掌握的学习路线与参考资料

Python sqlite3是Python语言自带的轻量级关系数据库管理系统,它可以让我们在不需要额外的安装和配置下,使用SQLite数据库进行操作和管理。SQLite是一个功能强大的嵌入式数据库,它非常适合在轻量级应用程序中使用,如桌面应用程序、…

数据结构—排序算法交换排序(冒泡快排)

目录 1.交换排序—冒泡排序 1.1冒泡排序基本思想 1.2冒泡排序的实现 2.交换排序—快速排序 1.1快速排序基本思想 1.2基准值划分—分析 1. hoare版: 2. 挖坑法: 3. 前后指针版本 1.3 hoare快排的具体实现 1.4 挖坑法快排的具体实现 1.5 前后指…

网安面试题大全(附答案)

本文面试题汇总: 防范常见的 Web 攻击 重要协议分布层 arp协议的工作原理 rip协议是什么?rip的工作原理 什么是RARP?工作原理 OSPF协议?OSPF的工作原理 TCP与UDP区别总结 什么是三次握手四次挥手? tcp为什么要三次握手…

Python数据结构与算法篇(十五)-- 二叉树的遍历:深度优先搜索与广度优先搜索

本篇开始总结二叉树的常用解题技巧,二叉树的顺序遍历和层序遍历刚好对应深度优先搜索和广度优先搜索。 1 顺序遍历 题目列表 144. 前序遍历145. 二叉树的后序遍历 94. 二叉树的中序遍历 144. 二叉树的前序遍历 给你二叉树的根节点 root ,返回它…