(1) Android Linux内核的性能分析

通过在指定内核的情况下进行性能监测,可以查看出Android各部分模块的cpu占用率,而运用opreport工具指定对vmlinux进行性能分析,可得出Android linux内核的各函数cpu占有率以及性能瓶颈。其中__raw_readsw占有率最高,为31%多。

#opreport /vmlinux -l -o out1.txt

其中out1.txt文件部分内容如下:(详细见附件out1.txt)

CPU: ARM/XScale PMU1, speed 0 MHz (estimated)

Counted CPU_CYCLES events (clock cycles counter) with a unit mask of 0x00 (No unit mask) count 100000

samples % symbol name

254817 31.3472 __raw_readsw

186 0.0229 rpc_async_schedule

185 0.0228 __do_page_cache_readahead

185 0.0228 nfs_proc_getattr

…………………………(略)

6 7.4e-04 ktime_add_safe

1 1.2e-04 writeback_release

1 1.2e-04 xscale_coherent_kern_range

1 1.2e-04 xscale_coherent_user_range

(2) Dalvik虚拟机的性能分析

由“Dalvik相关介绍”中得知,Dalvik实例由进程Zygote孵化,每个Android的上层应用均对应一个Dalvik实例,而通过查看可执行程序的位置(如截图5,截图6),分析得出Zygnote可执行程序为/system/bin/app_process,所有实例均有app_process进程fork产生。

截图5

截图6

因此对程序app_process进行性能分析:

#opreport /system/bin/app_process -l -o out2.txt

其中out2.txt文件部分内容如下:(详细见附件out2.txt)

CPU: ARM/XScale PMU1, speed 0 MHz (estimated)

Counted CPU_CYCLES events (clock cycles counter) with a unit mask of 0x00 (No unit mask) count 100000

samples % image name symbol name

3878 96.9742 [heap] (tgid:3893 range:0xa000-0x1e3000) [heap] (tgid:3893 range:0xa000-0x1e3000)

112 2.8007 [heap] (tgid:3893 range:0xa000-0x2d6000) [heap] (tgid:3893 range:0xa000-0x2d6000)

5 0.1250 app_process /system/bin/app_process

2 0.0500 [heap] (tgid:3841 range:0xa000-0x52000) [heap] (tgid:3841 range:0xa000-0x52000)

1 0.0250 [heap] (tgid:3176 range:0xa000-0x84000) [heap] (tgid:3176 range:0xa000-0x84000)

1 0.0250 [heap] (tgid:3537 range:0xa000-0x43000) [heap] (tgid:3537 range:0xa000-0x43000)

由结果仍未能得到Dalvik的具体性能瓶颈。其中每个heap应该相对应一个Dalvik实例。根据Oprofile官方文档,该结果应该跟Oprofile对JIT语言支持的限制有关。即是否能对Dalvik进行性能分析是个疑问?

附录3:实验结果与简单分析相关推荐

  1. FFmpeg的H.264解码器源代码简单分析:概述

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  2. python 编译成exe vmp加密_简单分析VMProtect V3.3.1

    本帖最后由 Crazyman_Army 于 2019-2-15 15:05 编辑 前言 VMProtect3很早就出来了,据说代码使用C++重构了,而且虚拟机架构也有很大的变化.网上关于VMP3.X的 ...

  3. R语言splines包构建基于logistic回归的自然样条分析:南非心脏病数据集、非线性:基函数展开和样条分析、你简单分析的不重要特征,可能只是线性不显著、而非线性是显著的

    R语言splines包构建基于logistic回归的自然样条分析:南非心脏病数据集.非线性:基函数展开和样条分析.你简单分析的不重要特征,可能只是线性不显著.而非线性是显著的 目录

  4. [EntLib]微软企业库5.0 学习之路——第七步、Cryptographer加密模块简单分析、自定义加密接口及使用—上篇...

    在完成了后,今天开始介绍企业库中的新模块:Cryptographer(加密模块),这个模块在日常的大多数项目的作用非常重要,例如:网站会员密码.身份证号.网站配置等,通过对信息进行加密可以保证项目数据 ...

  5. FFmpeg资料来源简单分析:libswscale的sws_getContext()

    ===================================================== FFmpeg库函数的源代码的分析文章: [骨架] FFmpeg源码结构图 - 解码 FFmp ...

  6. howdoi 简单分析

    对howdoi的一个简单分析. 曾经看到过下面的这样一段js代码: try{doSth(); } catch (e){ask_url = "https://stackoverflow.com ...

  7. Mac与Phy组成原理的简单分析

    Mac与Phy组成原理的简单分析 2011-12-28 15:30:43 //http://blog.chinaunix.net/uid-20528014-id-3050217.html 本文乃fir ...

  8. python做数据可视化的代码_Python数据可视化正态分布简单分析及实现代码

    Python说来简单也简单,但是也不简单,尤其是再跟高数结合起来的时候... 正态分布(Normaldistribution),也称"常态分布",又名高斯分布(Gaussiandi ...

  9. ASIHTTPRequest源码简单分析

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 ASIHttprequest 是基于CFNetwork的,由于CFNetwork是比较底层的http库,功能比较少, ...

最新文章

  1. 自定义手势解锁锁控件
  2. jQuery-H5-css3转盘抽奖-遁地龙卷风
  3. HTTP GET与POST区别
  4. c2c旅游springboot开源_重量级开源的商城和SpringBoot等项目看看有没有正好是你需要的...
  5. 零售的本质是什么呢?
  6. 前景检测算法(三)--帧差法
  7. PhotoShop大师之路视频
  8. 【FPGA算法加速】FPGA编程开发环境:Vivado安装教程详细说明
  9. JavaEE 启示录
  10. 客车网上售票系统(Java源码+sql脚本)
  11. 使用Freeimage库时报错的解决方法
  12. IDEA配置JDK版本
  13. 下载美国气候数据中心地址
  14. 怎么提取图片上的文字?非常方便
  15. ASP.NET Core使用Hangfire做定时任务
  16. 拓扑排序 POJ - 3687反向图跑字典序(重边)
  17. 中国著名大学校训巡礼
  18. win10安装提示“我们无法创建新的分区”
  19. 双麦克风语音增强之ANF 自适应零点形成
  20. 6月5日(一些繁琐的事)

热门文章

  1. 关于btrfs的修复,恢复数据
  2. 模电精髓“200问”
  3. Android 源码 输入系统之 InputReader
  4. 【学习笔记】数字证书,私钥——公钥
  5. 2018年最全Go语言实战抽奖系统教程
  6. S4 HANA连接其他数据库(oracle,sqlserver)
  7. matlab2012卸载,matlab2012一些函数删除后的替代解决方法及用到操作
  8. 论文阅读笔记1:EKT: Exercise-aware Knowledge Tracing for Student Performance Prediction
  9. 养猪还是养羊,刀杀还是电击?
  10. 中国移动支付全球领先!成中国“新四大发明“