尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Perfetto官方文档教你分析cpu相关信息
CPU 频率和空闲状态此数据源在 Linux 和 Android自 P 起上可用。它通过 Linux 内核 ftrace 基础架构记录 CPU 电源管理方案的变化。它涉及三个方面频率调节有两种方法获取 CPU 频率数据Ftrace 事件启用power/cpu_frequencyftrace 事件参见下面的 TraceConfig。这将在内核 cpufreq 缩放驱动程序更改频率时记录一个事件。请注意并非所有平台都支持此功能。根据经验它在基于 ARM 的 SoC 上可靠工作但在大多数现代基于 Intel 的平台上不产生数据。这是因为最近的 Intel CPU 使用由 CPU 直接控制的内部 DVFS并且不向内核公开频率更改事件。另请注意即使在基于 ARM 的平台上也仅在 CPU 频率更改时才发出事件。在许多情况下CPU 频率在几秒钟内不会更改这将在 trace 的开头显示为空块。我们建议始终将此与轮询见下文结合使用以获得初始频率的可靠快照。轮询 sysfs通过启用linux.sys_stats数据源并将cpufreq_period_ms设置为大于 0 的值来轮询 sysfs。这将定期轮询/sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq并将当前值记录在 trace 缓冲区中。在基于 Intel 和 ARM 的平台上都可以工作。总结命令cat/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq在大多数 Android 设备上频率调节是基于集群的大/小核心组因此看到四组 CPU 同时更改频率并不罕见。可用频率还可以通过启用linux.system_info数据源一次性采集每个 CPU 支持的完整频率列表。这将在 trace 采集开始时记录/sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies。此信息通常通过检查cpu_freq表来区分大/小核心。总结命令cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies由于上述power/cpu_frequency的相同原因现代 Intel 平台不支持此功能。空闲状态当没有线程有资格执行时例如它们都处于睡眠状态内核将 CPU 设置为空闲状态关闭一些电路以减少空闲功耗。大多数现代 CPU 有不止一个空闲状态更深的空闲状态使用更少的功耗但也需要更多时间从中恢复。请注意空闲转换相对快速且便宜CPU 每秒可以进入和离开空闲状态数百次。空闲性不得与完全设备挂起混淆后者是一种更强且更具侵入性的省电状态见下文。即使屏幕打开且设备看起来可操作CPU 也可以处于空闲状态。关于有多少空闲状态可用及其语义的详细信息高度特定于 CPU/SoC。在 trace 级别空闲状态 0 表示非空闲大于 0 的值表示越来越深的省电状态例如单核空闲 - 完整包空闲。请注意只要插入 USB 电缆大多数 Android 设备就不会进入空闲状态USB 驱动程序堆栈保持唤醒锁。通过 USB 收集的 trace 中只看到一个空闲状态并不罕见。在大多数 SoC 上当 CPU 空闲时频率值几乎没有意义因为 CPU 在空闲状态下通常是被时钟门控的。在这些情况下trace 中的频率值恰好是 CPU 变为空闲之前运行的最后一个频率。已知问题仅在频率更改时才发出事件。这可能长时间不会发生。在短 trace 中某些 CPU 可能不会报告任何事件显示 trace 左侧的间隙或者根本没有。Perfetto 目前在启动 trace 时不记录初始 CPU 频率。当前如果不捕获空闲状态见下文UI 不会呈现 cpufreq track。这是一个仅 UI 的错误即使未显示数据也已采集并可通过 Trace Processor 查询。UI在 UI 中CPU 频率和空闲性显示在同一 track 上。track 的高度表示频率颜色表示空闲状态彩色非空闲灰色空闲。悬停或单击 track 中的点将显示频率和空闲状态SQL在 SQL 级别频率和空闲状态都建模为 Counters。请注意cpuidle 值0xffffffff(4294967295) 意味着返回非空闲。selectts,t.name,cpu,valuefromcounterascleftjoincpu_counter_trackastonc.track_idt.idwheret.namecpuidleort.namecpufreqtsnamecpuvalue261187013242350cpuidle10261187013246204cpuidle14294967295261187013317818cpuidle10261187013333027cpuidle00261187013338287cpufreq01036800261187013357922cpufreq11036800261187013410735cpuidle14294967295261187013451152cpuidle04294967295261187013665683cpuidle10261187013845058cpufreq01900800已知 CPU 频率列表可以使用cpu_freq表查询。TraceConfig# 频率和空闲状态更改的事件驱动记录。 data_sources: { config { name: linux.ftrace ftrace_config { ftrace_events: power/cpu_frequency ftrace_events: power/cpu_idle ftrace_events: power/suspend_resume } } } # 轮询当前 cpu 频率。 data_sources: { config { name: linux.sys_stats sys_stats_config { cpufreq_period_ms: 500 } } } # 报告每个 CPU 的可用频率列表。 data_sources { config { name: linux.system_info } }完整设备挂起当笔记本电脑进入睡眠模式例如通过合上盖子或智能手机显示器关闭足够长时间时会发生完整设备挂起。当设备挂起时大多数硬件单元关闭进入可能的最高省电状态除了完全关机。请注意大多数 Android 设备在调暗显示器后不会立即挂起但如果通过电源按钮强制关闭显示器则倾向于这样做。细节高度特定于设备/制造商/内核。已知问题UI 没有清楚地显示挂起状态。当 Android 设备挂起时看起来好像所有 CPU 都在运行 kmigration 线程一个 CPU 在运行 power HAL。更多framework实战干货vip独享资料请关注下面原文地址原文地址https://mp.weixin.qq.com/s/zdWZrwbd094wohcdRzl-ig
RELATED

相关推荐

prefill还是decode更慢?time-to-first-token 第1周:30分钟吃透Roofline模型与算术强度这个LLM推理第一心智模型

prefill还是decode更慢?time-to-first-token 第1周:30分钟吃透Roofline模型与算术强度这个LLM推理第一心智模型

【免费下载链接】time-to-first-token A 10-week, 30-minutes-a-day roadmap for LLM inference serving and optimization. vLLM, SGLang, quantization, speculative decoding, benchmarking. 项目地址: https://gitcode.com/gh_mirrors/ti/time-to-first-token 点…

📅 2026/10/22 1:46:38
日本TELEC和JATE认证有什么区别

日本TELEC和JATE认证有什么区别

一、TELEC 与 JATE 认证是什么1. TELEC 认证(技适 R 标志)全称:Telecom Engineering Center,日本无线电设备符合性认证。法律依据:日本《电波法》,由总务省(MIC)监管。核心目的&…

📅 2026/10/22 1:46:38
C++ | AVLTree

C++ | AVLTree

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/22 1:46:38
MORE NEWS

更多资讯

📰

VB与三菱Q系列PLC通讯源码解析:从MC协议到稳定收发

简介:一份面向工业自动化上位机开发者的VB与三菱Q系列PLC通讯数据传输源码包,聚焦串口与网络通信场景,适合具备VB基础并希望掌握PLC数据交换的开发新手,也适合需要实际工程参考的进阶人员。整个压缩包仅277KB,包含51个…

📰

AI辅助教材写作:从初稿到低查重的完整实操指南

1. 先搞明白:AI写教材和查重之间的真实关系1.1 教材写作的难点到底在哪里教材这个品类很特别,它不像自媒体文章,写错了改一改就行,也不像论文,只需要把论点论证清楚。教材要面对的是“教”和“学”两个场景&#xff0c…

📰

AI编程智能体分级选型与全行业落地实践指南

1. 智能体分级体系到底在分什么1.1 从"能聊天"到"能干活"的五个台阶很多人第一次接触AI编程智能体,脑子里浮现的还是那个"你问我答"的聊天框。但真正在工程一线用过智能体的人都知道,聊天只是最表层的能力。行业里目前比较…

📰

无需训练即可评估神经网络架构:NASWOT原理与实践

1. 这篇论文到底想解决什么问题第一次看到"Neural Architecture Search without Training"这个标题,我的反应是:不训练怎么搜索?这不是悖论吗?毕竟NAS(神经网络架构搜索)这个领域从诞生之初就带着…

📰

Linux swap 启停操作与 swappiness 调优实战指南

1. 从一次线上告警说起:swap 到底在什么情况下会咬人凌晨两点,监控面板上一条内存使用率的曲线突然拉满,紧接着几台业务节点的响应时间从几十毫秒飙到两秒以上。登录机器一看,free -h显示物理内存还剩一点,但 swap 已经…

📰

HBase建表源码深度解析:从客户端到Master的完整链路与Procedure状态机

1. 从一次建表超时说起:为什么要啃 HBase 建表源码如果你在生产环境维护过 HBase 集群,大概率遇到过这样的场景:客户端调用createTable()之后卡住不动,或者返回超时异常,但表实际上已经建好了;又或者建表请…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬