美文网首页
Android性能之CPU占用率获取

Android性能之CPU占用率获取

作者: 有钱有所有 | 来源:发表于2019-06-23 14:58 被阅读0次

    CPU在占用率计算上会用到2个值:1.某段时间内Android系统CPU总的使用时间totalCPUTime;2.被测试app某段时间自身使用CPU的时间appCPUTime;

    所以得出公式如下:

    appCPU占用率 =(( appCPUTime2-appCPUTime1)/(totalCPUTime2-toalCPUTime1)*100;

    在获取totalCPU值之前,我们需要了解Android系统中,每个app都会被分配一个进程Pid,通过包名可以获取app对应的Pid。

    接下来,我们通过实践得出具体的cpu数值,需要准备条件有:1.配置好的android环境变量;2.手机数据线连接好电脑;3.AndroidStudio运行某一应用在手机上打开;

    在命令行中我们输入adb shell 回车得出如下:

    然后接着输入命令:ps,如图

    根据包名找到app对应的Pid是1856

    或者也可以输入ps | grep yourpackage,直接看到

    u0_a635  1856  249  1077972 45532 ffffffff 00000000 S

    接下来获取totalCPU时间片段:

    可以看出我的手机有8个CPU,每个CPU或多或少使用一下,其实根据cpu这玩意不好定位到代码问题,分析性能有点扯淡!(抱怨一下,继续往下分析)

    其中结果第一样就是cpu总的占用时间片段

    cpu  2416912 12623 1795385 5741362 25566 142 62690 0 0 0

    把不为的数字加在一起是当前时间片段占用的总时间totalCPUTime

    接下来获取appCPUTime,根据之前的到的Pid,输入如下命令:

    在结果中用红色箭头标注的是app使用的2个时间片段,只需加起来就可得到appCPUTime。(通过空格分割成为数组[13],[14])

    应为测试CPU我们肯定不是求某个瞬时的值,而是一个连续的值,所以可以在程序中写个定时器,每隔1秒钟,算出这两个CPU的值,然后根绝开头说的公式就可以得出某一段时间的CPU连续占用率的曲线了

    appCPU占用率 =(( appCPUTime2-appCPUTime1)/(totalCPUTime2-toalCPUTime1)*100;

    相关文章

      网友评论

          本文标题:Android性能之CPU占用率获取

          本文链接:https://www.haomeiwen.com/subject/sniiqctx.html