1.分析起因:

在开发过程中,在打算更换一个emmc(16G的容量储存)物料时候,发现该物料烧录固件的时候速度十分慢。后来通过android bench的性能测试工具发现两者存在明显的速度差异。
(1)烧写固件速度正常的emmc测试速度如下图:

(1)烧写固件速度异常的emmc测试速度如下图:

从上面看出明显,在软件相同的情况下,在顺序写(SEQ_WR)的时候,烧写固件速度异常的emmc的写速度比烧写固件速度正常的emmc慢了四倍。
因此可以得出结论:烧写固件速度异常的emmc有问题,应该是该物料不合格,后来询问物料来源,发现是一块旧料的emmc导致了读写性能下降。后来用了新的物料,测试的读写都正常。

本以为这样就这样给出答案完结了,但是突然一个同事的疑问引起了一下的事情,同事的疑问是"为何这个速度差别那么大,这明显有问题,是不是跟cpu的性能有关系?"(指的的是读写的速度为何只有52m/s,而读的速度却有120m/s)。

2.查看硬件规格参数

看到上面的的提问,通常都知道,读写速度的差异比较大很正常,而且读写速度一般很少牵涉到cpu,除非cpu爆满并且cpu主频很低。
当然上面的理由并不能让别人信服,所以想要拿出证据说话就要从主控以及emmc本身支持的带宽是多少?以及emmc普遍对应的读写速度是多少来说服疑问者。这些都需要一些硬件规格书来获取。

1.emmc规格书


结论:
从emmc规格书中看到,该emmc支持的emm5.0,模式有HS200,HS400双通道,其带宽最大能支持200MHZ。

2.主控支持的速度
(1)查看rk3326 cpu参数规格

(2)以及dts设备树的配置支持:

结论:
主控这边支持emm4.51,HS200模式,最大带宽为150MHZ.

3.普遍的emmc模式以及emmc版本对应读写速度

emmc模式对应的读写速度:

emmc各个版本一般的速度对比:

总结:emmc这边支持的emmc5.0,HS400双通道能让emmc芯片的速度理论上达到400Mbp/s,根据图但是芯片主控支持emm4.5,HS00模式理论上最大速度能支持200M/S,而且主控芯片这边在dts配置了最大带宽150MHZ,那也就是说一开始所说我们的板子上理论上支持的速度最大为150Mbp/s。而且根据上面的图emmc4.5,HS200对应的实际速度普遍都是如下图所示

从图中可知,emmc4.5,HS200模式的emmc实际读速度一般为140m/s,写速度为50m/s。这与一开始的我们板子上的读速度为120m/s,写为52m/s几乎相差甚少,我们测试出来的emmc读写速度是正常的,因此这个emmc的读写速度暂时跟cpu没有关系。

4.利用linux命令DD分析
除了上面的android bench的性能分析工具外,还有linux自带的dd命令可以大概的看下emmc的读写速度,但是dd测试速度跟写block大小以及count等都有关系,具体参考博客https://blog.csdn.net/benkaoya/article/details/70112094。

这里我们可以简单测试一下
1.首先查看各个分区对应block节点,

rk3326_mid:/ # ls -al /dev/block/platform/ff390000.dwmmc/by-name
total 0
drwxr-xr-x 2 root root 440 2017-08-05 17:00 .
drwxr-xr-x 3 root root 540 2017-08-05 17:00 ..
lrwxrwxrwx 1 root root  20 2017-08-05 17:00 backup -> /dev/block/mmcblk1p9
lrwxrwxrwx 1 root root  20 2017-08-05 17:00 boot -> /dev/block/mmcblk1p7
lrwxrwxrwx 1 root root  21 2017-08-05 17:00 cache -> /dev/block/mmcblk1p11
lrwxrwxrwx 1 root root  20 2017-08-05 17:00 dtb -> /dev/block/mmcblk1p4
lrwxrwxrwx 1 root root  20 2017-08-05 17:00 dtbo -> /dev/block/mmcblk1p5
lrwxrwxrwx 1 root root  21 2017-08-05 17:00 frp -> /dev/block/mmcblk1p16
lrwxrwxrwx 1 root root  21 2017-08-05 17:00 ipmacro -> /dev/block/mmcblk1p17
lrwxrwxrwx 1 root root  21 2017-08-05 17:00 metadata -> /dev/block/mmcblk1p13
lrwxrwxrwx 1 root root  20 2017-08-05 17:00 misc -> /dev/block/mmcblk1p3
lrwxrwxrwx 1 root root  21 2017-08-05 17:00 oem -> /dev/block/mmcblk1p15
lrwxrwxrwx 1 root root  20 2017-08-05 17:00 recovery -> /dev/block/mmcblk1p8
lrwxrwxrwx 1 root root  21 2017-08-05 17:00 security -> /dev/block/mmcblk1p10
lrwxrwxrwx 1 root root  21 2017-08-05 17:00 system -> /dev/block/mmcblk1p12
lrwxrwxrwx 1 root root  20 2017-08-05 17:00 trust -> /dev/block/mmcblk1p2
lrwxrwxrwx 1 root root  21 2017-08-05 17:00 ttspack -> /dev/block/mmcblk1p18
lrwxrwxrwx 1 root root  20 2017-08-05 17:00 uboot -> /dev/block/mmcblk1p1
lrwxrwxrwx 1 root root  21 2017-08-05 17:00 ubuntu -> /dev/block/mmcblk1p19
lrwxrwxrwx 1 root root  21 2017-08-05 17:00 userdata -> /dev/block/mmcblk1p20
lrwxrwxrwx 1 root root  20 2017-08-05 17:00 vbmeta -> /dev/block/mmcblk1p6
lrwxrwxrwx 1 root root  21 2017-08-05 17:00 vendor -> /dev/block/mmcblk1p14

我们可以测试一下userdata分区,对应节点为/dev/block/mmcblk1p20.
测试写入200m的结果如下:

rk3326_mid:/ # busybox dd bs=400k count=512 conv=fsync if=/dev/zero of=/dev/block/mmcblk1p20
512+0 records in
512+0 records out
209715200 bytes (200.0MB) copied, 5.681968 seconds, 35.2MB/s

测试读入200m的结果如下

rk3326_mid:/ # busybox dd bs=400k count=512 if=/dev/block/mmcblk1p20 of=/dev/null
512+0 records in
512+0 records out
209715200 bytes (200.0MB) copied, 1.655000 seconds, 120.8MB/s

注意:在多次读入的时候,每次读取前可以先通过命令sync; echo 3 > /proc/sys/vm/drop_caches清除之前缓存,否则除了第一次读取速度,后买你的读取速度会很高,那是因为缓存的问题。

android性能之emmc速率分析相关推荐

  1. Android App性能流畅度测评分析可以用到工具

    1.前言 在手机App竞争越来越激烈的今天,Android App的各项性能特别是流畅度不如IOS,安卓基于java虚拟机运行,触控响应的延迟和卡顿比IOS系统严重得多.一些下拉上滑.双指缩放快速打字 ...

  2. Android 性能分析工具整理汇总

    Android性能分析工具整理汇总 字数1852 阅读3579 评论10 喜欢54 Android性能分析工具整理汇总 把做Android开发以来碰到的一些不错的性能分析工具做个整理汇总... Deb ...

  3. Android性能优化——腾讯、字节、阿里、百度、网易等互联网公司项目实战+案例分析(附PDF)

    前言 当我们还在用按键.滑盖.翻盖手机的时候,全触屏手机来了; 当我们觉得二维码这项发明没有意义的时候,支付宝和微信等狠狠地给了我们响亮的耳光; 当我们以为扫码支付只有支付宝的时候,微信支付来了; 当 ...

  4. 【Android 性能优化】布局渲染优化 ( GPU 过度绘制优化总结 | CPU 渲染过程 | Layout Inspector 工具 | View Tree 分析 | 布局组件层级分析 )

    文章目录 一. GPU 过度绘制优化总结 二. CPU 渲染过程 三. CPU 渲染性能调试工具 Layout Inspector 四. Layout Inspector 组件树 DecorView ...

  5. 【Android 性能优化】应用启动优化 ( 阶段总结 | Trace 文件分析及解决方案 | 源码分析梳理 | 设置主题的方案总结 ) ★

    文章目录 一. 常用的耗时方法优化方案 ( 重要 ) 二. 源码分析梳理 1. 应用启动时间计算相关源码分析 2. Launcher 应用中启动 Android 应用流程 三. 启动白屏解决方案 An ...

  6. 【Android 性能优化】应用启动优化 ( 安卓应用启动分析 | Launcher 应用启用普通安卓应用 | 应用进程分析 )

    文章目录 一. Launcher 应用 startActivitySafely 方法分析 二. Launcher 中的 startActivity(View v, Intent intent, Obj ...

  7. Android系统性能优化(54)---Android性能分析专题

    Android性能分析专题 1.  背景:Android App优化, 要怎么做? 2.  Android App优化之性能分析工具 3.  Android App优化之提升你的App启动速度之理论基 ...

  8. Android 系统性能优化(30)---Android性能全面分析与优化方案研究

    Android 性能优化 1.结合以下四个部分讲解: 性能问题分类 性能优化原则和方法 借助性能优化工具分析解决问题 性能优化指标 2性能问题分类 1.渲染问题:过度绘制.布局冗杂 2.内存问题:内存 ...

  9. android布局时长分析,Android性能优化:布局优化 详细解析(含、、讲解 )

    前言 在 Android开发中,性能优化策略十分重要 本文主要讲解性能优化中的布局优化,希望你们会喜欢. 目录 1. 影响的性能 布局性能的好坏 主要影响 :Android应用中的页面显示速度 2. ...

最新文章

  1. P2480 [SDOI2010]古代猪文 Lucas+CRT合并
  2. 2020人工智能全球女性榜发布,致敬这些杰出的女科学家
  3. opencv双目测距资料整理
  4. 电饼锅的样式图片价格_2020年三明治机/电饼铛推荐选购指南,电饼档那个牌子好?有哪些好用的三明治机/早餐机/电饼铛?...
  5. element中el-image怎样显示图片
  6. Fiddler (一) 教程(Web调试工具)
  7. AjaxControlToolkit工具控件之Accordion错误解决方法
  8. java设计模型 解析工厂模式、proxy-agent模式、templete模式
  9. 如何下载使用MSDN原版系统镜像
  10. FPGA学习记录(7)<巴特沃斯低通IIR滤波器FPGA实现>
  11. Android IOS视频录制技术方案
  12. 为N台linux服务器传输大文件
  13. Windows消息类型及说明(全面)
  14. HTML基础课程笔记
  15. 实物短缺下的现货白银操作建议
  16. 图像处理中的边缘检测
  17. pythonif多个条件同时满足_Python if有多个条件怎么办
  18. 游戏编程精粹1-6分类目录之通用编程技术部分
  19. RS232/RS485信号转8路模拟信号 隔离D/A转换器WJ33
  20. 存储笔记5 直连式存储与SCSI

热门文章

  1. 2023年【危险化学品生产单位主要负责人】考试及危险化学品生产单位主要负责人考试题
  2. 深圳援鄂最后一批工作人员归来,88万元关爱金发放至85人
  3. 天地伟业客户端服务器维护,天地伟业监控官网客户端app
  4. SNS网站Feed功能设计
  5. 王坚、李彦宏、王海峰等候选工程院院士!
  6. 没有堕落的科学,只有堕落的科学家
  7. 报名开启!KunlunBase今年首场线下MeetUP,期待与您的见面!
  8. 非标准USBasp下载线烧录Arduino BootLoader的参数设置
  9. PS学习记录-图像【像素】与【分辨率】的说明
  10. 康希通信发布多款射频前端芯片:性能比肩美商