systrace分析 之 问题初步定位

news2025/1/23 17:43:40

2、systrace分析 之 问题初步定位

  • 1、找到问题点
  • 2、有buffer,SF却什么没有取
    • 2.1、GPU 处理时间长导致
    • 2.2、区分HWC release 是否有异常:
    • 2.3、SF 异常导致
    • 2.4、SF 自身处理时间长
    • 2.5、RenderThread处理时间长
  • 3、案例分享

1、找到问题点


2、有buffer,SF却什么没有取

有tx buffer但sf 却什么都没有取,可以往下继续check 出帧process 的render thread 和 GPU complation /hwc complation的状态。

2.1 GPU 处理时间长

如下示例中,buffer TX 中有两个buffer,但SF 却没有去取,往下看,是前一帧的 waiting for GPU completion 在vsync-sf来的时候都没有完成。所以需要请GPU 进一步确认。

2.3、区分HWC release 是否有异常:

首先,需要先了解下HWC和GPU之间的fence是怎么样的一个过程?
    . GPU拿的是acquireFence   HWC拿的是releaseFence, GPU是绘图,HWC是合成显示,这两个是互相等待的关系,
    . 要GPU画完这块buffer acquireFence放掉,SF才能拿去合成显示,
    . 要driver完成合成显示,放掉releaseFence,GPU才能拿这块buffer去绘制,
    . 如果此时可用的buffer不止一块,可以一边合成一边绘制下一张,但是如果下一张画完了当前帧的releaseFence没有放掉,当前帧合成还没完成,
      就必须等待releaseFence放掉才能合下一帧   

下图是两个案例,因为wait PreFence 和waiting for HWC release 的时间是平行的,所以第一例中,虽然没有HWC release的信息,但是也可以从wait PreFence 的时间来估算HWC 那边的时间。 


2.3、SF 异常导致

如下surfaceflinger空缺点,上面对应的bufferTX 中有buffer,但VSYNC-SF 过来后,SurfaceFlinger却没有去取,检查测试app “android.settings”, 也没有GPU completion 时间长的问题,所以该部分可以请SurfaceFlinger的owner 进一步确认为何不取buffer。

2.4 SF 自身处理时间长

如下图中(120hz的刷新率,所以1 vsync = 8.333ms),整个surfaceflinger 的UI thread 看起来很忙,无空闲时间。则直接进一步check SurfaceFlinger

 

 2.5、RenderThread 处理时间长

如下实例中确认有tx buffer,但SF 没有去取是因为当前帧的GPU 合成还没有做完。 

但是GPU合成没有做完的原因是因为RenderThread 前期处理时间是太长,queuebuffer trigger 的太晚。所以需要进一步确认 RenderThread处理时间长的原因

3、案例分享

如下图中,虽然Frames有很多黄灯的地方,但是SurfaceFlinger只有三个空缺点,所以只需要check 那三个空缺点掉帧的原因就好。 

该案例为120hz的刷新率,所以1 vsync = 8.333ms

从图中UI thread 和 RenderThread的duration时间来看,都是UI Thread 的animation 时间较长导致。所以可以按照UI Thread 的check 方式进一步处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1214571.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【PHP】医院麻醉临床信息系统源码

麻醉临床信息系统以服务围术期临床业务工作的开展为核心,为医护人员、业务管理人员、院级领导提供流程化、信息化、自动化、智能化的临床业务综合管理平台。 麻醉信息系统处理的数据包含病人的手术信息、麻醉信息、病人手术过程中从监护仪上采集到的数据和病人情况等…

解决STM32F429烧录程序后还需复位才能植入程序的bug

1.打开魔术棒,打开debug 2.打开setting 3.打开Flas Download 4.开启Reset and Run 5.点进去Pack选项页面,去掉enable

合肥数字孪生赋能工业制造,加速推进制造业数字化转型

聚焦国家战略需求和先进制造业发展方向,加快数字化发展战略部署,数字孪生、工业互联网、工业物联网已被广泛认为是工业革命的新引擎。合肥数字孪生正在推动工业制造从制造转向智造。通过数字化建模和仿真的方式,优化设计、生产、质量管理、供…

centos图形化桌面中火狐浏览器无法访问项目页面问题处理

项目场景: 使用centos环境中的火狐浏览器访问项目界面 问题描述: 在客户的demo环境中部署了项目,但是使用机器上自带的火狐浏览器访问界面确实白屏,联系开发同事后认为是浏览器版本的问题。 更新火狐浏览器版本后,问…

Python 3.6.10 中的 requests 库 TLS 1.2 强制使用问题及解决方案

Python 3.6.10中,requests库已经强制使用TLS 1.2协议,不再支持TLS 1.3协议。这一变化可能会导致在使用Python 3.6.10时,与使用TLS 1.3的服务器进行通信时出现问题。为了解决这个问题,我们可以采取一些措施来确保安全且有效的网络通…

寒冬只是表象,网安才是归宿

“简历基本没人看” “已读不回” “简历都没看直接告诉你不合适” “能约面试的很少” 据统计,现在的互联网行业都是上面这几种情况。不仅是今年,这两三年以来,互联网大厂的工作岗位缩减了又缩减,计算机专业的毕业生工作难上加难…

振弦传感器表面应变计与振弦采集仪形成岩土工程监测的解决方案

振弦传感器表面应变计与振弦采集仪形成岩土工程监测的解决方案 振弦传感器表面应变计与振弦采集仪可以结合使用,形成岩土工程监测的解决方案。具体的方案包括以下几个步骤: 1. 安装振弦传感器表面应变计:首先需要在需要监测的岩土结构表面安…

前三季度亏损近亿元,「缺钱」的北斗智联拟变更控股股东

本月初,北斗星通发布《关于深圳证券交易所重组问询函回复的公告》,针对公司全资子公司拟出售孙公司北斗星通智联科技有限责任公司(以下简称北斗智联) 15%的股权事宜做出进一步解读。 按照此前计划,15%的股权&#xff0…

Windows10关闭系统自动更新

1.背景 2.步骤 第一步: 第二步: 完美

基础课5——垂直领域对话系统架构

垂直领域对话系统是指针对特定领域或行业的需求而构建的对话系统。这种系统通常需要具备高度的专业知识和对特定领域的知识库进行深入的学习和训练,以便能够提供准确、高效、实用的服务。 垂直领域对话系统的构建通常包括以下步骤: 确定目标领域或行业…

Java虚拟机运行时数据区结构详解

Java虚拟机运行时数据区结构如图所示 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。 多线程切换时,为了能恢复到正确的执行位置,每条线程…

2022年03月 Scratch(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

一、单选题(共25题,每题2分,共50分) 第1题 天天收到了一个语音机器人,当天天说“a”的时候,机器人会说“apple”,当天天说“b”的时候,机器人会说“banana”, 当天天说“c”的时候,机器人会说“cat”,如果天天说其它内容,机器人就会说“I don’t know”。机器人可…

AIGC实战——变分自编码器(Variational Autoencoder, VAE)

AIGC实战——变分自编码器 0. 前言1. 变分自编码器1.1 基本原理1.2 编码器 2. 构建VAE编码器2.1 Sampling 层2.2 编码器2.3 损失函数2.4 训练变分自编码器 3. 变分自编码器分析小结系列链接 0. 前言 我们已经学习了如何实现自编码器,并了解了自编码器无法在潜空间中…

红米K40解BL锁以及刷国外EU版系统

解BL锁准备工作 进入手机 “设置“ > 我的设备 > 全部参数信息 > MIUI 版本连续点击 7 下,直到显示已开启开发者选项 回到设置主界面 > 更多设置 > 开发者选项 將 OEM 解锁开启,点入装置解锁状态并绑定自己的小米账号168小时之后再进行手…

UE基础必学系列:UMG

一、教程: 官方教程: 官方文档: 创建和显示UI 二、理解知识点: 2.1 RemoveFromParent 从视口中删除,但仍保留在内存中,并且变量仍然存在有效的 2.2 3D交互组件测试

如果你的内存比较大,对于windows11可以做出如下优化

在程序界,常有这种思想:用空间换时间,用时间换空间。都是相对而言,在内存足够大的情况下,下面说几点优化其中有一些是利用空间换时间的思想,适用范围:建议内存最小16G,最好是32G及以…

Hutool 实现敏感信息展示脱敏及其反脱敏

业务需求 将用户敏感信息脱敏展示到前端是出于保护用户隐私和信息安全的考虑。 敏感信息包括但不限于手机号码、身份证号、银行卡号等,这些信息泄露可能导致用户个人信息的滥用、身份盗用等严重问题。脱敏是一种常用的保护用户隐私的方式,它的目的是减少…

#[量化投资-学习笔记018]Python+TDengine从零开始搭建量化分析平台-正态分布与收益率

正态分布(Normal Distribution)又叫高斯分布、常态分布。通常用来描述随机变量的概率分布。 自然界的数据分布通常是符合正态分布规律的,比如说人的身高、体重。但是非自然界数据就不一定了。尤其是经过人为加工过的数据。 金融领域大量使用正态分布来计算收益率和…

R语言提取文字(字符串)中的内容--正则式(2)

科学研究中有时候咱们收集到的数据很乱,不能马上进行分析,如SEER数据,用过都知道,咱们需要对数据进行清洗,从数据中提取咱们需要的东西,才能进行分析,这时候有个有用的东西叫正则式,…

iceoryx(冰羚)-简介

概要 RouDi RouDi是Routing and Discovery的缩写。RouDi负责通信设置,但实际上并不参与发布者与订阅者或客户端与服务器之间的通信。鲁迪可以被认为是iceoryx的总机操作员。它的另一个主要任务是设置共享内存,应用程序使用共享内存交换有效负载数据。Ro…