首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
Perfetto官方文档教你分析cpu相关信息
📅 2026/10/22 1:46:35
✍️ 爱科研究院
👁 阅读 3,247
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
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/22 1:46:35
prefill还是decode更慢?time-to-first-token 第1周:30分钟吃透Roofline模型与算术强度这个LLM推理第一心智模型
2026/10/22 1:46:35
日本TELEC和JATE认证有什么区别
2026/10/22 1:46:35
C++ | AVLTree
2026/10/22 2:56:40
特征蒸馏提升YOLOv8模型压缩效果:特征对齐、损失设计与踩坑实践
2026/10/22 2:56:40
LlamaIndex 加载 Ollama 模型时报内存不足错误的排查
2026/10/22 2:56:40
SpringBoot+Vue大学生选课系统:前后端分离开发与部署全解
2026/10/22 2:56:40
AI Agent可靠性设计:从状态管理到工具调用的工程实践
2026/10/22 2:56:40
YOLOv8知识蒸馏实战:从Teacher-Student架构到模型压缩部署优化
2026/10/22 2:51:40
MCP协议实战:从零开发第一个MCP Server,让Agent调用你的服务
2026/10/22 0:01:24
电商智能运营体系从0到1:架构设计、落地步骤与避坑指南
2026/10/22 0:01:24
压缩空气储能与热网热惯性联合优化调度:热电联产系统建模与求解
2026/10/22 0:01:24
若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定
2026/10/21 19:05:16
OpenResearch实战:Claude Code、Codex、OpenCode、Cursor 工作流搭建与故障排查
2026/10/21 14:47:26
知识管理核弹:用Obsidian构建第二大脑的工程化方案(TaoToken 统一 Key 接入版)
2026/10/21 19:05:04
金融AI落地指南:从调研报告到技术选型与工程实践
2026/10/20 2:24:03
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/22 2:07:18
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/21 19:01:08
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)