基于fuse的sdcard存储方案缺点

  • android默认的方案,是基于用户空间文件系统,其最大的优点是移植性好。

sdcardFS(android sdcard存储方案---基于wrapfs文件系统)_第1张图片

分析android 默认fuse方案操作流程,如上图。可看出其最大缺点是:

  • fuse文件系统和sdcard daemon 必须频繁的进行命令交互、数据交换,
  • 引入内核态和用户态切换系统开销。
  1. android用户数据空间data目录和用户sdcard目录,物理上在emmc中是同一个分区。
  2. 而文件系统也采用同一个文件系统ext4.如下图:

sdcardFS(android sdcard存储方案---基于wrapfs文件系统)_第2张图片

既然硬件上是emmc的同一个分区/软件上直接文件系统都是ext4 !那么问题来啦!

我们是否有理由希望data目录和sdcard目录的存储性能接近呢?

这个问题是值得期待的!

但结果是我们期待的吗?请看测试结果:

  • data 目录基于ext4性能

sdcardFS(android sdcard存储方案---基于wrapfs文件系统)_第3张图片

sdcard 目录基于fuse+ext4性能

sdcardFS(android sdcard存储方案---基于wrapfs文件系统)_第4张图片

由以上测试数据,可以看出fuse性能表现令人失望!导致存储性能非常大的损耗!

基于wrapfs的sdcard 存储方案优点

既然前面说了fuse给存储系统带来了这么大损耗,那如何改进呢? 继续……

基于wrapfs的android sdcard存储优化方案原理如下图:

sdcardFS(android sdcard存储方案---基于wrapfs文件系统)_第5张图片


由图上,可以看出,wrapfs将上层的请求直接传递给了底层ext4文件系统,看起来比fuse简单多了。
那么同样的问题来啦!
我们是否有理由希望data目录和sdcard目录的存储性能无限接近呢?

请看测试结果:

data目录基于ext4性能:
sdcardFS(android sdcard存储方案---基于wrapfs文件系统)_第6张图片

sdcard目录基于wrapfs + ext4性能
sdcardFS(android sdcard存储方案---基于wrapfs文件系统)_第7张图片

由以上测试数据,可以看出基于wrapfs sdcard存储性能已经无限接近ext4啦!

总结:

android基于fuse sdcard存储方案,移植性强,但性能差。特别是针对性能好的emmc,性能drop更明显。

基于wrapfs sdcard存储方案,性能更强,越好的emmc,表现真好。但需要投入更多人力开发、维护。

参考:https://www.2cto.com/kf/201412/363638.html

更多相关文章

  1. 腾讯优测优分享 | Android性能测试工具化实现
  2. Android代码开发性能指引
  3. Android ListView专题之十二 分页不同的解决方案
  4. Android敲诈者病毒“安卓性能激活”分析(2015年9月版)
  5. Android tips tool 发现的性能问题
  6. Android Studio :no debuggable application 解决方案
  7. android proc 虚拟文件系统
  8. android 文件系统分析

随机推荐

  1. android控件背景揭密--NinePatch
  2. Android(安卓)Layout属性
  3. lua学习笔记 3 android调用Lua。Lua脚本
  4. I/O流的梳理和小结
  5. 【不负初心】Android初中高级开发工程师
  6. 红透半边天的Android
  7. 【Android】系统构架
  8. Java加载js
  9. 嵌入数据库SQLite(3) - Android
  10. Android(安卓)使用Parcelable序列化对象