随笔分类 - performance
摘要:I/O Prefetcher是高通本身提供的一套优化方案,可以用在Android手机App冷启动的时候。本文基于android Q 主要分libqti-iopd、vendor.qti.hardware.iop@2.0-impl、libqti-iopd-client_system、libqti-per
阅读全文
摘要:需要对比基线测试的情况; Kernel log: adb shell dmesg Event log: adb shell logcat –b events Logcat log: adb shell logcat lk boottime测试:(只适合LE) adb shell dmesg 搜索关键
阅读全文
摘要:提高缓存命中率是优化系统性能的关键策略之一。以下是一些提高缓存命中率的有效方法: 数据局部性优化: 空间局部性:优化数据访问模式,使得数据访问在空间上连续,比如通过循环展开和数据重排。 时间局部性:确保数据在被访问后不久再次被访问,比如通过循环重排和数据重用。 缓存行对齐: 确保数据结构的布局与缓存
阅读全文
摘要:Google在在Android11及之后版本的LMKD中,使用了psi作为杀进程的策略,本文简单介绍下psi。 转载自使用PSI(Pressure Stall Information)监控服务器资源_Linux_gameneedless_InfoQ写作社区 1.概述 当 CPU、内存或 IO 设备争
阅读全文
摘要:目录背景CPU调频概念实现验证线程CPU亲和性概念亲和性控制API应用层控制实现验证线程优先级概念实现验证 背景 为了进一步优化APP性能,最近针对如何提高应用对CPU的资源使用、以及在多线程环境下如何提高关键线程的执行优先级做了技术调研。本文是对技术调研过程的阶段性总结,将分别介绍普通应用如何调控
阅读全文
摘要:很多时候,写代码是一件很爽的事情,但最后需要对APP进行瘦身、性能分析却是一件很棘手的事情。当需要对APP的性能进行分析时,Simpleperf是一个简单快捷的选择。 正文开始前,先奉上官方的资料: Simpleperf命令和选项参考 Simpleperf 用法 什么是Simpleperf Simp
阅读全文
摘要:1. 正文 Systrace 是 Android4.1 中新增的性能数据采样和分析工具。它可帮助开发者收集 Android 关键子系统(如 SurfaceFlinger/SystemServer/Kernel/Input/Display 等 Framework 部分关键模块、服务,View系统等)的
阅读全文
摘要:1.正文 今天来讲一下为何我们讲到流畅度,要首先说 60 帧。 我们先来理一下基本的概念: 60 fps 的意思是说,画面每秒更新 60 次 这 60 次更新,是要均匀更新的,不是说一会快,一会慢,那样视觉上也会觉得不流畅 每秒 60 次,也就是 1/60 ~= 16.67 ms 要更新一次 在理解
阅读全文
摘要:1. 正文 1.1 线程状态查看 Systrace 会用不同的颜色来标识不同的线程状态, 在每个方法上面都会有对应的线程状态来标识目前线程所处的状态,通过查看线程状态我们可以知道目前的瓶颈是什么, 是 cpu 执行慢还是因为 Binder 调用, 又或是进行 io 操作, 又或是拿不到 cpu 时间
阅读全文
摘要:1. 正文 1.1 线程状态查看 Systrace 会用不同的颜色来标识不同的线程状态, 在每个方法上面都会有对应的线程状态来标识目前线程所处的状态,通过查看线程状态我们可以知道目前的瓶颈是什么, 是 cpu 执行慢还是因为 Binder 调用, 又或是进行 io 操作, 又或是拿不到 cpu 时间
阅读全文
摘要:简介: Systrace允许监视和跟踪Android系统的行为(trace)。它会指明系统都在哪些工作上花费时间、CPU周期都用在哪里,甚至可以看到每个线程、进程在指定时间内都在干嘛。它同时还会突出观测到的问题,从垃圾回收到渲染内容都可能是问题对象,甚至提供建议的解决方案。但是不能确定具体有问题的代
阅读全文
摘要:APP启动方式 App启动方式分三种:冷启动(cold start)、热启动(hot start)、温启动(warm start) ▲ 冷启动 系统不存在App进程(APP首次启动或APP被完全杀死)时启动APP此时,APP的启动将经历两个阶段: 第一阶段 1.加载并启动app;2.app启动后,第
阅读全文
摘要:使用 Perfetto 分析问题跟使用 Systrace 分析问题的步骤是一样的: 首先你需要抓取 Perfetto 文件 在ui.perfetto.dev 中打开 Trace 文件进行分析或者使用命令行来进行分析 这篇文章就简单介绍一下使用 Perfetto 抓取 Trace 文件的方法,个人比较
阅读全文
摘要:2019 年开始写 Systrace 系列,陆陆续续写了 20 多篇,从基本使用到各个模块在 Systrace 上的呈现,再到启动速度、流畅性等实战,基本上可以满足初级系统开发者和 App 开发者对于 Systrace 工具的需求。通过博客也加了不少志同道合的小伙伴,光交流群就建了有 6 个。这里非
阅读全文
摘要:一、Perfetto介绍 Perfetto是Android Q中引入的全新下一代平台级跟踪工具,为Android、Linux和Chrome平台提供了一种通用的性能检测和跟踪分析工具集。其核心是引入了一种全新的用户空间到用户空间的跟踪协议,该协议基于protobuf序列化机制将抓取的数据填充到共享内存
阅读全文
摘要:启动时间的优化,分为两大部分,分别是内核部分和用户空间两大部分。 从内核timestamp 0.000000作为内核启动起点,到free_initmem()输出"Freeing init memory"作为内核启动的终点。 借助于bootgraph.py对内核的kmsg进行分析,输出bootgrap
阅读全文
摘要:Sysdig 简介 Sysdig 官网 上对自己的介绍是: Open Source Universal System Visibility With Native Contaier Support. 它的定位是系统监控、分析和排障的工具,其实在 Linux 平台上,已经有很多这方面的工具 strac
阅读全文
摘要:perf除了上述的采样形式,还支持解析函数执行的完整调用栈,并得到调用栈中各个环节的cpu消耗,并对位于同一调用栈的各个环节的采样占比进行加总,得到占用cpu比例最高的顶层栈。使用如下命令进行采样 perf record -g --call-graph fp xxx # xxx 代表具体要执行的命令
阅读全文
摘要:排查顺序 整体情况: top/htop/atop命令查看进程/线程、CPU、内存使用情况,CPU使用情况; dstat 2查看CPU、磁盘IO、网络IO、换页、中断、切换,系统I/O状态; vmstat 2查看内存使用情况,内存状态; iostat -d -x 2查看所有磁盘的IO情况,系统I/O状
阅读全文


浙公网安备 33010602011771号