gpt4 book ai didi

android - 使用 'perf record' 设置样本分析的速率

转载 作者:IT王子 更新时间:2023-10-29 01:19:10 25 4
gpt4 key购买 nike

据我了解,Linux 的性能计数器子系统使用 perf record命令对 CPU 和硬件计数器(例如缓存未命中)执行基于样本的分析。

  1. 如何为 perf record 指定采样率?我从手册页中看到的最接近的是有点神秘的选项 “-c, --count=Event period to sample”,但不清楚这是指 period-as-duration 还是inverse-of-rate-period(如果是后者,它期望的单位是什么)。

  2. 对于移动 Android 设备上的应用程序,“良好”的采样率是多少?什么速率太低没有用,什么速率过高?

最佳答案

首先,您需要使用perf list 获取事件列表。我没有使用 Android 的经验,所以,如果可以的话,请展示此列表中最有趣的部分。

1) -c 是采样之间的事件计数。 (仅对第 count 个事件进行采样,1 是对所有事件进行采样,100000 是对每 100000 个事件进行采样)例如如果有 cpu tick 事件(类似于 TSC),那么 count 就是滴答数,我建议您将采样设置为不超过 1 毫秒。要获取滴答计数,请使用公式:CPU_Freq_in_MHz * 1000。这是每毫秒获取样本的事件计数,例如对于 800 MHz CPU 和滴答事件使用 -c 800000

对于其他事件,您应该估计它们完成的频率。如果你不知道,你可以从刻度的计数值开始,然后检查是否收集了足够的样本。如果不是,请将计数降低十次并再次检查。滴答计数是安全的,因为滴答是任何 CPU 中最常见的事件之一。

2) 不同PMU的好率不同,用“-e”或“--event=”选项选择。如果事件很少见,每秒不超过 1000 个,您甚至可以对每个事件进行采样。如果事件类似于缓存未命中,您应该尝试多种变体,因为好的值取决于采样的代码。太低的采样率会给你少量的样本,结果将不可靠且嘈杂。但是如果速率太高,结果也会有噪音,因为每个 PMU 都会影响跟踪的程序。我建议您平均每秒使用不超过 1000 个事件。

关于android - 使用 'perf record' 设置样本分析的速率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6103320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com