附录3:实验结果与简单分析
(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:实验结果与简单分析相关推荐
- FFmpeg的H.264解码器源代码简单分析:概述
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- python 编译成exe vmp加密_简单分析VMProtect V3.3.1
本帖最后由 Crazyman_Army 于 2019-2-15 15:05 编辑 前言 VMProtect3很早就出来了,据说代码使用C++重构了,而且虚拟机架构也有很大的变化.网上关于VMP3.X的 ...
- R语言splines包构建基于logistic回归的自然样条分析:南非心脏病数据集、非线性:基函数展开和样条分析、你简单分析的不重要特征,可能只是线性不显著、而非线性是显著的
R语言splines包构建基于logistic回归的自然样条分析:南非心脏病数据集.非线性:基函数展开和样条分析.你简单分析的不重要特征,可能只是线性不显著.而非线性是显著的 目录
- [EntLib]微软企业库5.0 学习之路——第七步、Cryptographer加密模块简单分析、自定义加密接口及使用—上篇...
在完成了后,今天开始介绍企业库中的新模块:Cryptographer(加密模块),这个模块在日常的大多数项目的作用非常重要,例如:网站会员密码.身份证号.网站配置等,通过对信息进行加密可以保证项目数据 ...
- FFmpeg资料来源简单分析:libswscale的sws_getContext()
===================================================== FFmpeg库函数的源代码的分析文章: [骨架] FFmpeg源码结构图 - 解码 FFmp ...
- howdoi 简单分析
对howdoi的一个简单分析. 曾经看到过下面的这样一段js代码: try{doSth(); } catch (e){ask_url = "https://stackoverflow.com ...
- Mac与Phy组成原理的简单分析
Mac与Phy组成原理的简单分析 2011-12-28 15:30:43 //http://blog.chinaunix.net/uid-20528014-id-3050217.html 本文乃fir ...
- python做数据可视化的代码_Python数据可视化正态分布简单分析及实现代码
Python说来简单也简单,但是也不简单,尤其是再跟高数结合起来的时候... 正态分布(Normaldistribution),也称"常态分布",又名高斯分布(Gaussiandi ...
- ASIHTTPRequest源码简单分析
2019独角兽企业重金招聘Python工程师标准>>> 1.前言 ASIHttprequest 是基于CFNetwork的,由于CFNetwork是比较底层的http库,功能比较少, ...
最新文章
- 自定义手势解锁锁控件
- jQuery-H5-css3转盘抽奖-遁地龙卷风
- HTTP GET与POST区别
- c2c旅游springboot开源_重量级开源的商城和SpringBoot等项目看看有没有正好是你需要的...
- 零售的本质是什么呢?
- 前景检测算法(三)--帧差法
- PhotoShop大师之路视频
- 【FPGA算法加速】FPGA编程开发环境:Vivado安装教程详细说明
- JavaEE 启示录
- 客车网上售票系统(Java源码+sql脚本)
- 使用Freeimage库时报错的解决方法
- IDEA配置JDK版本
- 下载美国气候数据中心地址
- 怎么提取图片上的文字?非常方便
- ASP.NET Core使用Hangfire做定时任务
- 拓扑排序 POJ - 3687反向图跑字典序(重边)
- 中国著名大学校训巡礼
- win10安装提示“我们无法创建新的分区”
- 双麦克风语音增强之ANF 自适应零点形成
- 6月5日(一些繁琐的事)
热门文章
- 关于btrfs的修复,恢复数据
- 模电精髓“200问”
- Android 源码 输入系统之 InputReader
- 【学习笔记】数字证书,私钥——公钥
- 2018年最全Go语言实战抽奖系统教程
- S4 HANA连接其他数据库(oracle,sqlserver)
- matlab2012卸载,matlab2012一些函数删除后的替代解决方法及用到操作
- 论文阅读笔记1:EKT: Exercise-aware Knowledge Tracing for Student Performance Prediction
- 养猪还是养羊,刀杀还是电击?
- 中国移动支付全球领先!成中国“新四大发明“