Fork me on GitHub
侧边栏

随笔分类 -  performance

摘要:本讲是Android Camera性能分析专题的第21讲 ,我们介绍录像Buffer Path详解,包括如下内容: Android Codec2 简介 Video Codec + MediaRecorder.getSurface 录像Buffer Path Video Codec2 + MediaR 阅读全文
posted @ 2025-12-06 10:18 yooooooo 阅读(10) 评论(0) 推荐(0)
摘要:Perfetto是Android为我们提供的性能分析工具,网上已经有很多文章来介绍这个工具了,这里就不再赘述,仅贴几篇我觉得有用的文章/网站在此记录: systrace/perfetto中需要actrace打tag相关方法 常用的SQL查询 perfetto ui perfetto命令可能用到的参数 阅读全文
posted @ 2025-09-29 21:08 yooooooo 阅读(73) 评论(0) 推荐(0)
摘要:Winscope 是一款 Web 工具,可以让用户在动画和转换期间和之后记录、重放和分析多个系统服务的状态。Winscope 将所有相关的系统服务状态记录在一个跟踪文件中。使用带有跟踪文件的 Winscope 界面,您可以通过重放、单步执行和调试过渡来针对每个动画帧检查这些服务的状态(无论是否有屏幕 阅读全文
posted @ 2025-09-14 09:48 yooooooo 阅读(182) 评论(0) 推荐(2)
摘要:在系统工程师的日常工作中,最苦恼的事情之一就是分析问题所依赖的可观测性数据出现了错误。“这该死的玩意儿又出错了!” 在面对新工具出现的新问题时,工程师们在愤懑之余免不了怀念旧时的荣光:那时的调试工具设计精巧,API 简明易用,如老伙计般地可靠。 然而随着新系统、新编程语言和新编程框架的不断发展,可观 阅读全文
posted @ 2025-09-09 16:00 yooooooo 阅读(202) 评论(0) 推荐(0)
摘要:DWARF 是一种调试信息格式,全称 Debugging With Attributed Record Formats。它不是压缩算法,而是一种标准,用来描述程序的结构、变量、函数、行号等信息,方便调试器(如 gdb)或性能分析工具(如 perf)做符号解析和调用栈展开。 DWARF 的作用 当你用 阅读全文
posted @ 2025-09-08 21:15 yooooooo 阅读(97) 评论(0) 推荐(0)
摘要:本讲是Android Camera性能分析专题的第20讲 ,我们介绍从Trace统计预览Buffer Path各层帧率,包括如下内容: Camera Provider预览帧率统计 Camera Server预览帧率统计 Camera App预览帧率统计 如何分析预览帧率不足问题 Camera Pro 阅读全文
posted @ 2025-08-17 21:57 yooooooo 阅读(140) 评论(0) 推荐(0)
摘要:本讲是Android Camera性能分析专题的第19讲 ,我们介绍预览Buffer Path Trace实战分析,包括如下内容: GeekCamera2选择使用TextureView或SurfaceView SurfaceView 预览Buffer Path in Android 13 Textu 阅读全文
posted @ 2025-08-17 21:46 yooooooo 阅读(39) 评论(0) 推荐(0)
摘要:GeekCamera2选择使用TextureView或SurfaceView GeekCamera2支持TextureView作为预览组件,也支持SurfaceView作为预览组件 具体选择逻辑: GeekCamera2\app\src\main\java\com\deepinout\geekcam 阅读全文
posted @ 2025-08-07 21:46 yooooooo 阅读(21) 评论(0) 推荐(0)
摘要:本讲是Android Camera性能分析专题的第17讲,我们介绍拍照性能分析,包括如下内容: 拍照性能指标 拍照性能拆解 GeekCamera2为拍照添加Trace 拍照性能Trace实战分析 拍照性能指标 指标类型 说明 Shot2View / Shot2Gallery / CaptureEnt 阅读全文
posted @ 2025-08-07 14:36 yooooooo 阅读(65) 评论(0) 推荐(0)
摘要:在Perfetto中如何打开Pivot Table 打开Perfetto网站,然后Enable Pivot tables。 注:默认情况下Pivot tables是关闭的,因为该功能尚处于开发试验阶段,需要手动打开 在Perfetto中如何查看函数调用栈 选中某块slices区域后,配置好Pivot 阅读全文
posted @ 2025-08-06 21:18 yooooooo 阅读(76) 评论(0) 推荐(0)
摘要:Switch Camera性能拆解 在启动Camera流程的基础上增加了close camera流程 模块 开始点 结束点 App 点击Camera Switch Icon 开始调用disconnect HAL 开始调用disconnect 调用disconnect结束 App 调用disconne 阅读全文
posted @ 2025-08-06 21:15 yooooooo 阅读(36) 评论(0) 推荐(0)
摘要:本讲是Android Camera性能分析专题的第14讲,我们介绍从CameraServer角度详解Camera启动性能,包括如下内容: 从CameraServer角度详解Camera启动性能 CameraServer核心函数流程拆解 从CameraServer角度详解Camera启动性能 模块 开 阅读全文
posted @ 2025-08-06 14:13 yooooooo 阅读(93) 评论(0) 推荐(0)
摘要:正文 这里直接上官方对于 SurfaceFlinger 的定义 大多数应用在屏幕上一次显示三个层:屏幕顶部的状态栏、底部或侧面的导航栏以及应用界面。有些应用会拥有更多或更少的层(例如,默认主屏幕应用有一个单独的壁纸层,而全屏游戏可能会隐藏状态栏)。每个层都可以单独更新。状态栏和导航栏由系统进程渲染, 阅读全文
posted @ 2025-07-14 10:48 yooooooo 阅读(295) 评论(0) 推荐(0)
摘要:1. 简介 本文记录一次Android图形性能问题的分析过程——发现、定性和定位图形性能问题,以及探讨的性能优化方案。 环境:Android Q + MTK + ARM Mali-G72。 所分析的性能问题(下称case):打开录屏应用并启动后台录屏,滑动前台应用(滑屏)。性能表现差:CPU、GPU 阅读全文
posted @ 2025-07-11 18:01 yooooooo 阅读(302) 评论(0) 推荐(0)
摘要:本讲是Android Camera性能分析专题的第13讲,我们介绍从Camera App和Java Framework角度详解Camera启动性能,包括如下内容: 从Camera App和Java Framework角度详解Camera启动性能 从Camera App和Java Framework角 阅读全文
posted @ 2025-07-11 09:55 yooooooo 阅读(37) 评论(0) 推荐(0)
摘要:问题背景: 了解surfaceflinger的vsync同学都可能知道vsync属于一个节拍器,主要用来控制有节奏的渲染,不至于会产生什么画面撕裂等现象。 一般vsync都有会有2部分: app部分vsync,控制各个app可以有节奏的上帧 surfaceflinger部分vsync,控制surfa 阅读全文
posted @ 2025-07-10 10:48 yooooooo 阅读(228) 评论(0) 推荐(0)
摘要:背景: 经常在看systrace、perfetto相关trace时候,其实我们主要就是看各种方法的调用tag,如下图所示 正因为有了系统中各个地方埋下的这些tag,才让我们可以根据这些方法tag分析出整个系统的运行情况。但是大家有没有想过,请问这些tag是怎么打上去的?如果我们自己要打印自己方法的t 阅读全文
posted @ 2025-07-08 18:21 yooooooo 阅读(125) 评论(0) 推荐(0)
摘要:不同的人对流畅性(卡顿掉帧)有不同的理解,对卡顿阈值也有不同的感知,所以有必要在开始这个系列文章之前,先把涉及到的内容说清楚,防止出现不同的理解,也方便大家带着问题去看这几篇问题,下面是一些基本的说明 对手机用户来说,卡顿包含了很多场景,比如在 滑动列表的时候掉帧、应用启动白屏过长、点击电源键亮屏慢 阅读全文
posted @ 2025-07-04 17:46 yooooooo 阅读(367) 评论(0) 推荐(0)
摘要:Android 的大部分进程间通信都使用 Binder,这里对 Binder 不做过多的解释,想对 Binder 的实现有一个比较深入的了解的话,推荐你阅读下面三篇文章 理解Android Binder机制1/3:驱动篇 理解Android Binder机制2/3:C++层 理解Android Bi 阅读全文
posted @ 2025-07-03 21:56 yooooooo 阅读(98) 评论(0) 推荐(1)
摘要:“If you can measure it, you can optimize it” is a common term in the computing world, and for Android’s rendering system, the same thing holds true. I 阅读全文
posted @ 2025-07-03 16:28 yooooooo 阅读(161) 评论(0) 推荐(1)