» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 51 1234
发新话题
打印

说说 iPhone6 TLC 测评中的一些错误。

中午闲着没事,就来说说之前有关 iPhone6 TLC 测评中的一些错误。 首先将原文贴一下。
========================================================================
稿源:MacX
有传闻称iPhone 6不仅128GB型号采用TLC,香港知名硬件网站HKEPC近日就此问题做了一次详细测试,他们找来了多个iPhone 6 64GB样本,包括太空灰,银色及金色各种颜色,而且出货日期十分接近。
结果发现,同样是iPhone 6 64GB A1586港行,出现了HYNIX(海力士)、TOSHIBA(东芝)MLC颗粒及TOSHIBA(东芝)、SANDISK(闪迪) TLC颗粒四种不同版本。
为了测试采用不同闪存颗粒的iPhone 6 64GB在磁盘性能方面是否存在差异,HKEPC使用SSH对样机进行了DD Copy测试,分为Zero Fill(全零填充)以及Random Fill(随机填充)两种方式,进行1K、4K、16K、64K、256K、1024K、4096K、8192K、32768K大小文件测试,每个文件大小重复100次。
Zero Fill(全零填充)测试:

HKEPC测试发现,采用TLC闪存的iPhone 6 64GB会针对磁盘系统进行快速存取优化,只要开启显存使用的App,当系统进行拷贝时会使用系统内存进行暂存,以提升TLC写入的系统性能,甚至出现了TLC闪存颗粒的iPhone 6 64GB进行拷贝时,性能表现超越了MLC颗粒的版本,最高写入速度高达207MB/s。
不过,但数据文件超过400MB以后,其系统性能就会出现严重的下降,前台应用甚至会出现延迟或者闪退的情况。如果采用TLC闪存的iPhene 6 64GB开启了多个消耗系统内存的App,磁盘性能下降问题会更明显,因为磁盘系统会根据内存使用情况分配快速存取硬盘的可用容量。

iPhone 6 64GB TLC NAND闪存加入了动态缓存技术


iPhone 6 64GB MLC NAND闪存没有动态缓存技术

另一方面,采用MLC闪存的iPhone 6 64GB进行文件拷贝时,系统内存并没有针对磁盘进行快速存取,但整体表现比较平均。其中,以采用TOSHIBA(东芝)MLC颗粒的性能最佳,最高写入速度达到79.2MB/s,HYNIX(海力士)MLC颗粒就要差一些,最高只有70.2MB/s。
此外,和TLC不同的是,采用MLC颗粒的iPhone 6 64GB进行文件拷贝时,系统内存使用的情况并没有太多变化,也没有因为拷贝大文件写入速度大幅下降,前台应用在拷贝时保持稳定,没有出现延迟或闪退的情况。
Random Fill(随机填充)测试:

当改用随机填充测试时,TLC和MCL的性能差距明显扩大。由于系统内存难以对细小非连续的文件继续动态存取,采用TLC颗粒的iPhone 6 64GB的写入性能大幅下降至3MB/s以下。虽然采用MLC的版本表现也不是太理想,但小文件写入都在3.5MB/s,随着文件增大,表现也会明显上升。相反,TLC由于采用动态快速存取磁盘优化,对随机拷贝测试没有帮助,相反令CPU的占用率大幅度提高,导致iPhone 6出现没有反应的现象。
内存使用:
下图是TLC闪存iPhone 6 64GB的内存使用情况,当进行文件拷贝时,内存使用率会突然大幅提升。最明显的是,Inactive部分突然由93.4MB上升到232.8MB,这些文件会被iOS暂时存在内存用作为硬盘缓存,空闲部分只有28.2MB。

下图为MLC闪存iPhone 6 64GB的内存使用情况,进行文件拷贝时,内存上升幅度明显没有TLC那么大,空闲内存也有165.1MB。

点评:
使用TLC的iPhone 6确实会在高负载文件写入时出现不稳定的情况,比如应用崩溃;
MLC颗粒的性能综合表现要更好,也要稳定的多。
祈祷自己买到MLC版本吧
由此可见,此前报道的iPhone 6/6 Plus出现死机、应用崩溃的情况客观存在,而且是可以用测试证明的。从之前的消息来看,128GB版本基本都是TLC,64GB也基本是一半一半。如果你想保险,只能选择16GB版本或者购买AppleCare了。


========================================================================

为了使得大家能看懂,我首先需要介绍一些基本概念:
1. 冯诺依曼架构的CPU只能执行在内存中的内容。换句话说,手机无论是运行应用程序、放歌看图、下载拷贝等,都需要数据至少在内存里面过一遍。ARM系列的CPU都是如此。
2. 并不需要一次性把所有数据都读取到内存中来,可以先读写一部分,当需要其他部分的时候,再腾挪出空间给新的数据。
3. 当今几乎所有的操作系统都会在内存中开辟一块区域,来缓存外部存储器的数据,所谓外部存储器就是这里说的TLC、MLC。这是因为数据经常需要重复读写,而且内存比外部存储器快得多。

接下来就可以对这上面那篇文章进行分析了。
我首先指出这篇文章上一个宏观上的测评问题,它只测试了写,没测读。这是一个非常大的问题,比我后面要说的问题要大得多。为什么呢,因为我们用手机,对外部存储器几乎全是读。应用程序我们只在安装的时候写一次。其他音乐图片书刊等,我们存好后几乎不会编辑它。删除应用程序、文件时,也只是对目录进行修改(目录里没了就认为文件删除了),并不需要把文件内容清零。所以手机对于外部存储器的读取性能要求要远远高于写入要求。而这方面的信息文章里有意无意的忽略了。我认为文章能把这个忽略,首先就说明了这测评极不专业。
然后我们再来看看文章对写数据的测与评。
首先文章说它先测的连续写。所采用的方式是用DD命令,比如
dd if=/dev/zero of=filename bs=8192K count=100
不懂这个命令含义的人我先来解释下。它就是对一个名叫filename的写数据,写入的内容8192K个空字节(0x00),像这样做100次。请注意这里的100次,它指的不是重复打开这个文件100次,打开一次,写100次8192K个空字节。
文章给出的结论是在400MB内容以内,反倒是TLC比MLC速度快。在400MB以后,TLC速度下降明显。并且文章给出的结论是系统开辟了内存来做缓存。
首先系统开辟了内存做缓存这几乎是一定的,不是因为用了TLC才这么做,iOS、Android对所有外部存储器都会这么做。这是文章的一个常识性错误。最重要的是“否使用了内存做缓存”根本无法解释400MB内容以内TLC速度更快这一“现象”。因为假如使用了缓存,那么只要写入的数据量在缓存大小内,每秒写入速度都应该是一样快,而不是在400MB内,总数据量越大,每秒写入的数据量越大。因为每秒写入的速度照理说几乎应该取决于内存的速度。所以说文章的这个推理是站不住脚的。但是我们还是应该给测试结果一个合理的解释。一个首要问题就是数据是否真实可信。文章原文说“每个文件大小重复100次”,我认为文章的意思是说“我对100个文件做了N个字节的写入操作”,而它的测试方法是“对1个文件写了N*100个字节”。不过这个测试问题的严重程度会随着写入的数据量变大而变得不重要。但是文章中的数据显然不是多次测试给出的平均值。我们都知道在大数据的写入时,尤其是几百M几G的时候,系统的其他负荷对整个过程有明显的影响,因为这个时间很长,写入几G数据时,哪怕是PC上都要几分钟。只测试一次并不能给出一个准确的答案。

然后文章测试的“随机填充测试”,文章并没有给出测试方法,不知道所谓的“随机填充测试”到底是什么意思,我姑且认为是用随机的数据来填写文件,(也就是把前面的 /dev/zero 换成了/dev/random)。那这会有什么影响呢?很多人认为因为数据是“随机”的了,那么内存缓存应该就无法起作用了所以TLC的速度就上不去了。这个解释乍一看到时很符合实验结果。但是当我们结果缓存机制来分析一下就会觉得这也说不通。在这里我们需要简单的说一下这缓存的工作机制。首先内存缓存的学名叫(Page cache或Buffer cache)它缓存的单位不是文件,而是一个固定大小的块,你比如说一个4K大小的文件块。用一个例子来解释其工作原理,当有一个6K的文件需要写入的时候,系统首先寻找一开始的4K会是否在缓存中,如果不在就在缓存中存一份,如果在就覆盖在缓存中的。然后剩下的2K系统做同样的操作。完成后这个写入操作就部分的完成了。随后系统会在恰当的时间再讲缓存中的数据写到外部存储器中去。很重要的一点是,系统不需要区分这个4K块中的内容是什么。就刚才的例子,如果我们再重新把这个6K的文件写一次,系统不会说这个2个4K块的内容和以前一样,所以无需缓存。因为比较内容是否一样还不如直接覆盖。所以,照理说,文章中所谓的“随机填充”的写入速度应该和“连续”的一模一样。之所以会出现如此大的区别,我想应该是随机数据的生成速率照成的,也就是说在这个测试中,速度的瓶颈不是内存的速度,而是产生随机数据的速度。


TOP

posted by wap, platform: iPhone
楼主简直就是苹果用户的指路明灯,果黑们这下可以统统闭嘴了。



TOP

lz的那贫乏的知识面就别出来现了,是打算继虚拟内存之后再增添一个头衔么


TOP

引用:
原帖由 dboy99 于 2014-11-18 14:41 发表
lz的那贫乏的知识面就别出来现了,是打算继虚拟内存之后再增添一个头衔么
这个称号太老了,很多人都不知道,该renew一下了

TOP

posted by wap, platform: iPhone
楼主啥时候买tlc6啊...

TOP

macx这站简直是出名的果粉网站
看过一段时间的cb应该都能看表示知投稿源了
lz现在连你祖宗都不认了?

TOP

引用:
原帖由 测试一下 于 2014-11-18 14:48 发表
posted by wap, platform: iPhone
楼主啥时候买tlc6啊...
已经下单了,给BF买的6,自己买的6+,到时候看看到底有啥区别。

TOP

引用:
原帖由 dboy99 于 2014-11-18 14:41 发表
lz的那贫乏的知识面就别出来现了,是打算继虚拟内存之后再增添一个头衔么
是很贫乏,我觉得我还是不能很好的解释数据,请多多指教。

TOP

我认为最好的办法 是把闪存颗粒从苹果上焊下来 然后放到ssd里 用ssd的主控进行测试 就明白了

TOP

posted by wap, platform: SONY Z1
绝逼真爱……

TOP

引用:
原帖由 江南馄饨 于 2014-11-18 15:03 发表
posted by wap, platform: SONY Z1
绝逼真爱……
这叫物奴,通常是因为真实生活中很失败,只能在某一物体或品牌上找到寄托和存在感,所以有人要是敢说那东西一点不好就好比杀了他亲妈。
战区的几个极端索索,还有周围的那些极端崇拜偶像的都是这种病
本帖最近评分记录
  • yinzhili 激骚 +1 我很赞同 2014-11-18 15:39
  • jiamiao 激骚 +3 恭喜发财 2014-11-18 15:19
  • 超越梦想 激骚 +1 最骚 Rated by wap 2014-11-18 15:17

TOP

引用:
原帖由 ff_cactus 于 2014-11-18 14:59 发表

是很贫乏,我觉得我还是不能很好的解释数据,请多多指教。
内存和nand的写入速度有一个速度差,假如内存的写入速度是5000MB/s,TLC nand的写入速度是50MB/s,那么这个速度差就是4950MB/s了

数据先写入到内存,因为内存速度快,只需要0.1秒就能把400MB的缓存塞满
与此同时缓存部分会把数据回写到nand并清空缓存,但是速度就慢多了只有50MB/s
因为缓存的大小是固定的,当缓存满了之后iphone6只能等待缓存回写清空才能继续拷贝数据,这时拷贝速度就直接等于nand的写入速度

TOP

楼主
文章中说的TLC的缓存技术不是以前常识中的计算机缓存技术
是三棒子为了降低SSD硬盘成本发明的技术
原来的没有的
然后给其他厂商给模仿去了
并且被贪便宜的库克看上

TOP

另外还要纠正楼主一个错误
手机的写入不会很少的
你收微信看网页看视频
除非你的手机是断网的
否则任何收到新的信息
就是不断的在写入

[ 本帖最后由 aszx21 于 2014-11-18 15:22 编辑 ]

TOP

引用:
原帖由 dboy99 于 2014-11-18 15:15 发表


内存和nand的写入速度有一个速度差,假如内存的写入速度是5000MB/s,TLC nand的写入速度是50MB/s,那么这个速度差就是4950MB/s了

数据先写入到内存,因为内存速度快,只需要0.1秒就能把400MB的缓存塞满
与此 ...
我还以为你有多高明的解释呢。那为何400MB以前,每秒速度还是不断提升的,照你的意思应该,在缓存没写满之前,速度应该是恒定的呀。

TOP

 51 1234
发新话题
     
官方公众号及微博