和UFS闪存相比,eMMC的性能更弱,同一型号的手机混用这两种规格的闪存,让一些消费者感到了不满。对此,厂商称通过优化,eMMC的产品也可以获得优秀的体验。这个优化到底是怎么回事?根据以往的一些宣传,可以推断出是由于储存器使用了更先进的文件系统——F2FS。
对于储存器的文件系统,很多朋友或许并不太关注。但在使用上,不可避免地会感受到不同文件系统之间的区别——最直观的,莫过于兼容问题,例如NTFS文件系统的硬盘插到Mac电脑中无法写入,WinXP无法辨别exFAT文件系统等等。为什么储存器会选择不同的文件系统?一个优秀的文件系统,真的能把eMMC优化成UFS吗?今天就一起来谈谈这问题吧。
<ignore_js_op>
文件系统有啥用?
我们知道,在使用硬盘、U盘等储存器之前,需要进行格式化。而格式化的时候,会看到有很多文件系统可以选择。例如,在Win系统下,可以把格式化为NTFS、FAT32等等,在Linux下可以格式化为Ext3、Ext4等等,在macOS中可以格式化为HFS+、APFS等等。这些不同的文件系统,都有着一个共同的作用,那就是组织起储存器上的数据,让操作系统和用户更容易辨认和操作。
<ignore_js_op>
例如,在HDD硬盘上,数据是由扇区来储存的。什么是扇区?HDD的盘片是一个同心圆,把圆分成一个个小小的扇形,数据在这些扇形中储存,这些扇形就被称之为扇区。扇区储存着数据,但是操作系统并不会直接让用户访问一个个扇区——辨认不同的扇区靠的是物理地址,作为一个用户,面对着“01DE”“02FD”这样的物理地址,压根就无从下手。大家找苍老师的影视作品,都是到“摇杆驱动程序”的文件夹中去找,哪有找扇区物理地址的道理?
要把扇区组织起来,变成用户易于理解的各种文件、文件夹,就得文件系统来发挥作用了。我们知道,几十百来个人的广场舞,尚有令人眼花缭乱的阵仗,更何况是天文数字一般的扇区。不同的操作系统,组织数据的方式各不相同,于是就诞生了各种各样的文件系统。
<ignore_js_op>
这些不同的文件系统,特性也不尽相同,而且还有这优劣之分。例如大家非常熟悉的FAT32和NTFS,NTFS就明显要比FAT32更加先进——FAT32无法建立起2T以上的分区、储存4G以上的文件,而NTFS则可以轻松做到;在安全方面,NTFS支持文件加密、权限控制等特性,还支持日志,而FAT32则都不支持。另外,在性能方面,NTFS对FAT32也是有着明显优势。因此,如果文件系统更先进,的确可以把储存器“优化”得更上一个档次。
专为闪存而生的文件系统F2FS
文件系统的选择是有讲究的。例如在大容量硬盘流行、注重安全性的今天,在Win系统中使用的硬盘基本都会格式化成NTFS;而为了寿命和兼容性的考虑(NTFS的日志会请求更多读写,对闪存寿命不利),U盘、存储卡又往往格式化成为FAT32。安卓手机又普遍使用什么文件系统呢?我们知道安卓基于Linux,因此也继承了Linux的很多特性,大多数安卓机的闪存都跟随了Linux的主流文件系统,格式化成为了Ext4。
<ignore_js_op>
Ext4是一种很优秀的文件系统,它支持无限子目录、多块分配、日志记录等先进特性。不过,它是否适合手机?还真不一定。Ext4在2006年首次出现,当时的储存介质普遍还是HDD。而现在安卓机使用的都是闪存,Ext4并没有针对闪存作太多的优化。
HDD和闪存的结构天差地别,数据的组织也并不一样。在物理结构上,闪存并不存在扇区,因此需要经由FTL层来模拟HDD的扇区以实现对文件系统的兼容。加上文件系统没有对闪存作什么优化,所以效率会受到影响。那么有没有为闪存作优化的文件系统?F2FS便是了。
<ignore_js_op>
F2FS文件系统的全称是“Flash Friendly File System”,看名字就知道,这是专门为闪存而生的文件系统。这个文件系统来自三星,在2012年底被Linux内核所支持,自然也能够用于安卓机上。F2FS的确做了很多针对闪存的优化,最重要的就是基于闪存的块来进行读写,小文件的随机读写性能大大提高。
eMMC真能优化成UFS?
以上的问题也可以这么说:eMMC使用F2FS,到底能不能获得和UFS同等的性能?
根据已有的测试数据来看,F2FS的确比Ext4性能更高,甚至能让eMMC 5.1在随机写入性能超过UFS 2.1。不过,在持续读写速度方面,UFS 2.1仍要遥遥领先。而USF 2.1配合F2FS,取得了非常理想的测试成绩,在随机写入方面甚至能十倍于采用Ext 4的UFS 2.1。无论是eMMC还是UFS,换用后F2FS,都有明显提升,而UFS换用F2FS的提升幅度更大,性能表现更加完美。
那能不能说F2FS能让eMMC优化成UFS?这要分开不同方面看。在随机读写性能方面,使用F2FS的eMMC的确可以媲美Ext4的UFS。
这个性能对App的开启速度很重要,某些使用F2FS的eMMC安卓机在App开启速度方面,就因此不输使用UFS的竞品机型。但是,eMMC的物理瓶颈,是无法依靠F2FS来补全的——eMMC持续读写速度慢,而且是半双工,每通道同一时间只能读数据或者写数据,不能同时读写。在复杂的应用环境下,eMMC依然会是瓶颈。因此,UFS搭配F2FS,才是最完美的性能方案。
无论如何,UFS从硬件规格上,明显优于eMMC。eMMC使用F2FS后,或许能在某些方面胜过使用Ext4的UFS,但仍不能掩盖硬件规格更低的事实——UFS可以换用F2FS,eMMC却是变不了UFS的。目前同时使用UFS和F2FS的设备不多,如果很看重闪存性能,那还是UFS更值得选购——无论用的是Ext4还是F2FS文件系统。
eMMC真能优化成UFS?谈谈手机闪存的文件系统的更多相关文章
-
手机闪存速度测试工具,AndroBench
手机闪存速度测试工具,AndroBench
-
被忽视的eMMC——A1 SD Bench闪存测试
一直以来,大家对手机的配置方面都比较关注CPU和GPU的架构.频率.核心数等,却经常忽略了手机闪存的速度.实际上手机的闪存素质对手机日常操作的响应.载入速度同样起到举足轻重的影响,今天给大家介绍的则是 ...
-
[Android] 配置安卓模拟器,使得dex文件不被优化成odex
最近做一个模块,需要将apk里面加载的dex文件dump出来,所以需要配置让dalvik不要把dex文件优化成odex. 1. 配置build.prop 主要是通过修改文件/system/build. ...
-
闪存中的NorFlash、NandFlash及eMMC三者的区别【转】
本文转载自:https://blog.csdn.net/Blazar/article/details/77843655 快闪存储器(英语:Flash Memory),是一种电子式可清除程序化只读存储器 ...
-
瑞发科NS1081主控 + THGBM5G7A2JBAIR(eMMC) 制作16GB闪存驱动器
文档标识符:NS1081_FLASH-DRIVE_D-P9 作者:DLHC 最后修改日期:2020.8.22 本文链接:https://www.cnblogs.com/DLHC-TECH/p/NS10 ...
-
Android真机测试、乐视手机启用开发者模式
一.乐视手机启用开发者模式 1.进入 设置>关于手机,连续按5次,进入开发者模式 显示结果如下: 2.启用开发者模式,并且要启用USB调试 3.在VS中部署或调试Android引用,使用真机测试 ...
-
Eclipse 真机调试检测不到手机解决方案
想用Eclipse真机调试,但是死活检测不到手机. 手机已经打开了usb调试模式. 开始用的华为Mate9,后面试了下小米,都不行. 在网上搜了一堆,什么安全驱动.adb占用.删除360手机助手.修改 ...
-
手机CPU知识扫盲:谈谈手机CPU架构与原理 (全
CPU是手机上面最复杂,最贵的Soc(芯片),担任的也是手机中大脑的位 置,是手机跑分性能的决定性硬件.智能手机发展到今天,各大手机CPU厂商也从春秋战国逐渐到了现在四国鼎立的时代(高通,MTK,三星 ...
-
手机CPU知识扫盲:谈谈手机CPU架构与原理
CPU是手机上面最复杂,最贵的Soc(芯片),担任的也是手机中大脑的位置,是手机跑分性能的决定性硬件.智能手机发展到今天,各大手机CPU厂商也从春秋战国逐渐到了现在四国鼎立的时代(高通,MTK,三星, ...
随机推荐
-
PHP数组处理函数的使用array_reduce(二)
关于PHP数组操作函数更为细致的用法大家还可以参考PHP在线参考手册:http://php.net/manual/zh/index.php array_reduce — 用回调函数迭代地将数组简化为单 ...
-
WPF学习02:Routed Events
与传统的桌面开发相比,在事件模型上WPF引入了Routed Events,从开发者的角度上,我们获得了两个便利: 1.可以实现事件路由,即向XAML结构中的父元素路由或者是向子元素路由. 2. Rou ...
-
HDU3367+并查集应用
题意:找到一个这样的图,在这个图中,最多有一个环. 使得所有的边的和最大. 贪心+并查集 首先把边排序,然后开始分类讨论. 对于边ab(含有两个端点ab) 如果a,b是属于两个不同的集合 a b 是两 ...
-
[POJ 2019] Cornfields
Cornfields Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5516 Accepted: 2714 Descri ...
- 图解Tomcat
-
初识vue小结
初识vue 大家都那么热爱他一定有原因,我也特想了解. 我来咯, 首先用vue开发版,用一个标签在head中插入,script标签src属性引入vue文件,就像jquey一样在script,但是放在h ...
-
linux命令大全(1)
当用户使用linux系统时,其实在和Shell在打交道,当用户发出指令,其实先将这些指令发送给Shell, 然后由Shell将用户的指令翻译后传送给内核,再由内核来控制硬件的工作. 然后内核将硬件的工 ...
-
vue.js 三种方式安装(转)
https://blog.csdn.net/m0_37479246/article/details/78836686
-
C++ 4 种具有更 为准确语义的新强制转换类型
1. static_cast<T>() 可用于把指向A 的指针强制转换为指向B 的指针,其约束条件是类B必须是类A的子类.例如:A *obj = new B;B *b = static_c ...
-
csu 1549: Navigition Problem(几何,模拟)
1549: Navigition Problem Time Limit: 1 Sec Memory Limit: 256 MBSubmit: 305 Solved: 90[Submit][Stat ...