社区

你真了解CPU利用率?

awen 2020-04-10
28371个浏览 10个回帖

Android:

CPU Usage:传统CPU利用率,也叫未规范化CPU利用率

计算方法:当前时刻CPU频率下,CPU Usage = CPU执行时间/CPU总时间。

备注:一般Android StuduioAdb等获取的CPU利用率都是未规范化CPU利用率。

CPU Usage(Normalized):规范化CPU利用率

由于移动设备CPU频率时刻变化,用传统CPU利用率计算方法,假定在低频率时刻计算出CPU利用率=30%,和在CPU高频时刻计算出CPU利用率=30%。同样都是30%但性能消耗是完全不样的,明显高频消耗更高。传统CPU利用率已无法真实反映性能消耗。

所以我们需要一种规范化(可量化)的统计方式。将频率因素考虑进去。

CPU Usage(Normalized)= (CPU执行时间/CPU总时间) * (当前时刻所有CPU频率之和/所有CPU频率最大值之和)

     PerfDog两种统计方式都有。CPU Usage默认为未规范化CPU利用率。建议使用规范化CPU利用率作为衡量性能指标。

     备注:极少部分手机暂时无法测试规范化CPU利用率,请重启下尝试。

iOS:

PerfDog统计的是传统CPU利用率,CPU Usage默认为未规范化CPU利用率。由于iOS平台,频率变化一般是在电池电量极低,锁屏等极端情况下才出现。所以规范化没有很大意义。


回帖
10个回帖
  • 为什么cpu获取到的值与Xcode获取到的不一致?perfdog获取的值非常小,只要8%

    点赞9 回复
    2020-04-24 23:00:06
  • 如何切换到未规范化CPU利用率模式?

    点赞0 回复
    2020-04-29 09:40:29
  • @tim luo

    勾选上CPU Usage(Normalized)即可。
    点赞0 回复
    2020-05-11 18:35:11
  • 感觉不错,看了之后有一定价值

    点赞1 回复
    2020-06-03 20:02:42
  • CPU Core Usage是干嘛的,有什么作用,在什么场景下会使用?

    点赞5 回复
    2020-06-04 14:23:04
  • 这个获取的值和xcode debugsession中获取的相似,但是和timeprofile获取的相差很远,不确定那个更正确。

    点赞0 回复
    2020-07-06 18:28:20
  • @ms x

    同问
    点赞1 回复
    2020-07-16 18:32:18
  • 为什么AppCPU是0?

    点赞2 回复
    2020-12-03 16:16:22
  • @huang huang

    perfdog的测试时单核xcode测试的是手机的总核数
    点赞0 回复
    2021-03-04 18:39:46
  • 为什么说iOS频率只在锁屏,电量低才出现?iOS 正常运行 CPU不会变频,一直满频跑吗?有测试iOS频率佐证你们这个说法嘛


    点赞1 回复
    2023-08-14 11:18:14
取消评论
一周热议
简体中文 | English
取消
投稿
投稿须知:
1. 作者信息:PerfDog社区 ID
2. 原创信息:原创 OR 转载 (转载需附原地址)
3. 文章详细内容
请发送至 PerfDog@tencent.com 复制邮箱 已复制
我们将会在5个工作日内回复
我知道了