Systrace系列11 —— Triple Buffer 解读

这篇具有很好参考价值的文章主要介绍了Systrace系列11 —— Triple Buffer 解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文主要是对 Systrace 中的 Triple Buffer 进行简单介绍,简单介绍了如何在 Systrace 中判断卡顿情况的发生,进行初步的定位和分析,以及介绍 Triple Buffer 的引入对性能的影响。

怎么定义掉帧?

Systrace 中可以看到应用的掉帧情况,我们经常看到说主线程超过 16.6 ms 就会掉帧,其实不然,这和我们这一篇文章讲到的 Triple Buffer 和一定的关系,一般来说,Systrace 中我们从 App 端和 SurfaceFlinger 端一起来判断掉帧情况

App 端判断掉帧

如果之前没有看过 Systrace 的话,仅仅从理论上来说,下面这个 Trace 中的应用是掉帧了,其主线程的绘制时间超过了 16.6ms ,但其实不一定,因为 BufferQueue 和 TripleBuffer 的存在,此时 BufferQueue 中可能还有上一帧或者上上一帧准备好的 Buffer,可以直接被 SurfaceFlinger 拿去做合成,当然也可能没有

Systrace系列11 —— Triple Buffer 解读

所以从 Systrace 的 App 端我们是无法直接判断是否掉帧的,需要从 Systrace 里面的 SurfaceFlinger 端去看文章来源地址https://www.toymoban.com/news/detail-461023.html

SurfaceFlinger 端判断掉帧

到了这里,关于Systrace系列11 —— Triple Buffer 解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 3.11 版本是对线程安全做了什么更改吗

    问题:这份代码在 3.11.3 中它居然输出 0 ,一度以为自己写错了,抱着不信邪的态度,又搞了个 Python 3.9.7 的环境试了下,果然还是符合自己预期,输出不为 0,想问下 3.11 版本中是做了什么修改吗? 答案: 首先在 Python 字节码执行的时候 ,GIL 并不是随时能在任意位置中断切

    2024年02月09日
    浏览(30)
  • Win11新建不了文本文档?Win11右键无法新建文本文档的解决方法

    ​Win11系统具有稳定、速度快、系统干净等特点,深受用户的喜爱,但是在使用中难免会出现一些问题,就比如右键无法新建文本文档的情况,出现这一情况的原因很有可能是由于系统文件缺失问题,对此我们一起来看看小编是如何解决的吧。 还有详细的一键重装系统方法

    2024年02月08日
    浏览(51)
  • 本文整理了Debian 11在国内的几个软件源。

      1.使用说明  一般情况下,将/etc/apt/sources.list文件中Debian默认的软件仓库地址和安全更新仓库地址修改为国内的镜像地址即可,比如将deb.debian.org和security.debian.org改为mirrors.xxx.com,并使用https访问,可使用如下命令: 修改之后再运行apt update更新索引。 2.国内常见镜像站点

    2024年02月07日
    浏览(25)
  • 将GPU版本的torch和torchvision下载至本地进行安装,解决torch.cuda.is_available()为False的情况,本文主要解决CPU版本的torch问题。

    这是困扰我很久的问题,今天花了一点时间去研究一下为什么我的cuda和cudann安装完成了,却不能使用GPU,原因是我的torch和torchvision是cpu版本的,必须下载GPU版本的才能使torch.cuda.is_available()为True,本文使用将文件下载到文件夹后进行安装。 1、打开Anaconda Prompt(Anaconda3)  2、打开

    2024年02月10日
    浏览(50)
  • Nginx的server块外层的常见配置语句的解读(主要是http块的配置语句解读)

    自己写的与Nginx有关的几篇重量级博文 详情请参见链接 https://blog.csdn.net/wenhao_ir/article/details/135023881 有下面的Nginx配置: 下面开始研究这些配置的意思。 这条Nginx配置语句 worker_processes auto 用于设置Nginx服务器启动时的工作进程数量。具体作用如下: worker_processes : 这是一个指令

    2024年01月25日
    浏览(32)
  • YOLOv5系列(二十八) 本文(2万字) | 可视化工具 | Comet | ClearML | Wandb | Visdom |

    点击进入专栏: 《人工智能专栏》 Python与Python | 机器学习 | 深度学习 | 目标检测 | YOLOv5及其改进 | YOLOv8及其改进 | 关键知识点 | 各种工具教程

    2024年02月03日
    浏览(37)
  • 小知识点系列(十一) 本文(2万字) | BCELoss | BCEWithLogitsLoss | CrossEntropyLoss | Smooth L1 Loss | NLLLOSS |

    点击进入专栏: 《人工智能专栏》 Python与Python | 机器学习 | 深度学习 | 目标检测 | YOLOv5及其改进 | YOLOv8及其改进 | 关键知识点 | 各种工具教程 官网 torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io)

    2024年01月21日
    浏览(32)
  • Linux系列文章 —— vim的基本操作(误入vim退出请先按「ESC」再按:q不保存退出,相关操作请阅读本文)

    vim-操作篇 进程概念篇 进程地址空间篇 Linux,是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用

    2024年02月03日
    浏览(36)
  • JDK8 和 JDK11 Java 两个主要版本的比较

    Java 是一门广泛应用于企业级应用和跨平台开发的编程语言。随着时间的推移,Java 不断演变和发展,版本之间有着许多新的功能和改进。本篇博客将重点关注 JDK 8 和 JDK 11 之间的区别,分析它们的新特性、性能改进和其他方面的差异。 一、性能改进: JDK 11 对性能进行了优化

    2024年02月09日
    浏览(33)
  • JDK8与JDK11:Java两个主要版本的比较

    在Java的世界里,JDK8和JDK11无疑是两个里程碑式的版本。它们在功能、性能和易用性上都进行了许多改进,使得Java开发者能够更高效、更轻松地开发出高质量的程序。在这篇文章中,我们将对这两个版本进行详细的比较,以帮助你更好地了解它们之间的差异。 1. 默认垃圾回收

    2024年03月10日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包