猎鹰 发表于 2017-6-25 05:35:47

为何手机/电脑用久了会卡顿?谈谈闪存掉速的问题。

我相信很多人都会有一种感觉,那就是新买的手机用起来很流畅,然而用了一段时间就开始变得很卡。而且最奇怪的是这种卡顿并不是在高负荷的情况下,而是日常使用中都会出现的。不过解决办法很简单,那就是使用恢复出厂设置,但是过一段时间还会继续卡。实际上那是因为在使用过程中文件越来越多,使得闪存空间占得满满的,造成掉速(我的手机在使用中就经常使用容量超过80%)。
       下面放出一张CPU发展的图,我们可以发现现在的CPU速度其实已经足够快了,也就是说现在的低端手机性能也远超之前的旗舰手机,然而实际上现在的安卓手机在使用一段时间之后流畅度确实会大幅下降,这个锅绝不可能让CPU背,而且系统也在不断优化,凭借强大的性能,也不至于日常使用出现卡顿的情况。实际上这种时候的卡顿是闪存速度不够造成的。
      如果不了解内存、缓存、闪存(硬盘)这一类东西的朋友可以看一下这篇文章:
      https://bbs.makertime.org/read-590



关于提升系统运行流畅度,我们可以对比一下机械硬盘和固态硬盘。

我们可以发现在连续读写方面固态硬盘的优势并不大,但是在4K和时间方面有着数量级的差距。而这两个因素在系统流畅度的决定权是很重要的。如果使用过低端游戏本(无SSD)和高端超极本(使用SSD)的朋友肯定会有这样的感觉,高端超极本虽然配置远不及游戏本,但是日常使用起来超极本却舒服很多。换句话说就是一旦你用了SSD你就再也无法接受没有SSD的电脑了。


      我之前使用的手机是华为P9 32G版本,CPU是Kirin955,以下是CPU跑分。从性能上看是非常强大的,应该说对于日常使用性能是完全过剩的,但是在实际使用的过程中依旧会出现卡顿,而且升级了系统后卡顿现象依旧存在。当时手机储存空间已经使用超过了30G,因为文件太多,所以清理了一下空间。后来将空间清理到20G左右之后,在日常使用中居然非常流畅和新手机差不多,之前的卡顿完全消失了。目前判断是闪存掉速是造成卡顿的主要因素。



关于储存器的介绍可以看看这篇文章:https://bbs.makertime.org/read-928
为了方便阅读,我将会把之前的一部分内容单独拿出来讲一下。

      首先需要讲一下MOS的结构: MOS管的工作原理(以N沟道增强型MOS场效应管)它是利用VGS来控制“感应电荷”的多少,以改变由这些“感应电荷”形成的导电沟道的状况,然后达到控制漏极电流的目的。在制造管子时,通过工艺使绝缘层中出现大量正离子,故在交界面的另一侧能感应出较多的负电荷,这些负电荷把高渗杂质的N区接通,形成了导电沟道,即使在VGS=0时也有较大的漏极电流ID。当栅极电压改变时,沟道内被感应的电荷量也改变,导电沟道的宽窄也随之而变,因而漏极电流ID随着栅极电压的变化而变化。



图片:mos.png
https://bbs.makertime.org/attachment/1703/thread/5_93_a43c51355539d22.png
我们可以通过在G下面再加一个浮动极,通过在里面注入电荷便能使保持导通与关断。



图片:nand.jpg
https://bbs.makertime.org/attachment/1703/thread/5_93_7895fb1bda13813.jpg
这时候肯定有人会问,这个浮动极周围都是绝缘的,怎么能注入电荷呢?
在宏观世界中确实是这样的,但在微观世界中存在隧道效应。

隧道效应:      经典物理学认为,物体越过势垒,有一阈(读yu,阀实际上是一个错误的叫法)值能量;粒子能量小于此能量则不能越过,大于此能量则可以越过。例如骑自行车过小坡,先用力骑,如果坡很低,不蹬自行车也能靠惯性过去。如果坡很高,不蹬自行车,车到一半就停住,然后退回去。      量子力学则认为,即使粒子能量小于阈值能量,很多粒子冲向势垒,一部分粒子反弹,还会有一些粒子能过去,好像有一个隧道,故名隧道效应(quantum tunneling)。可见,宏观上的确定性在微观上往往就具有不确定性。虽然在通常的情况下,隧道效应并不影响经典的宏观效应,因为隧穿几率极小,但在某些特定的条件下宏观的隧道效应也会出现。





         当电荷被成功注入后,由于周围都是绝缘的,这就使得导通关断状态可以长期保存下去。
         那么会不会因为绝缘不够造成电荷跑出去使得数据丢失呢?那么固态硬盘还能用吗?
         实际上电荷丢失的情况确实存在,不过这个时间是十年以上。你想想十年前用的硬盘才80G,现在手机都能128G,电脑硬盘都达到2000G。在十年之后这个硬盘你还会用吗?所以我们可以放心使用,因为这个硬盘寿命远远大于更新周期。

SLC/MLC/TLC的区别:
       最开始一个浮动极只有两种电位,这种叫SLC(Single-Level Cell)。
      随着时代的发展,技术越来越先进,人们渐渐发现了在原来只有两种高低电位的芯片内电压还能再细分出两种,于是就出现了MLC(Multi-Level Cell)。
      再后来还能分到第三层去,于是有了TLC(Trinary-Level Cell)。
      看起来TLC技术更先进,可以在相同体积下弄出三倍的容量。实际上这也得做出牺牲的,那就是寿命和速度。毕竟三层的情况下对电压的控制要求更精准。
         实际上也有QLC,不过就连TLC的寿命和速度相比MLC都有着较大的差距,QLC的寿命和速度就更没法看了,所以市场上通常最低都是TLC。



图片:slc mlc tlc.png
https://bbs.makertime.org/attachment/1703/thread/5_93_c3e771360520016.png



图片:闪存速度.jpg
https://bbs.makertime.org/attachment/1703/thread/5_93_3384ccf97b53fc5.jpg
   由于TLC速度慢,寿命短,似乎不适合推广,不过现在也有技术给TLC续命。跟多级缓存机制相似,许多TLC的SSD也是多级设计,在TLC前面加入一块容量较小的SLC。在日常使用中,常用文件便在SLC中来回擦写,如果是较大的文件(这类文件通常也不会经常擦写)那么才调用TLC。这样可以使得TLC在日常使用中速度更快,寿命更长。不过这种设计也有问题,那就是当SLC存满后就容易出现掉速的现象。


寿命计算
    看了上面的寿命表,是不是感觉用不多久就会坏掉,毕竟有的文件一天就会擦写几十次。实际上SSD的寿命并不是这样计算的。现代的主控都会做到平衡磨损,也就是当你把之前不要的东西删掉后,它只是会把东西隐藏了而已,并没有真正擦除。当你又重新建立一个文件之后,就会在一块新的区域写入。这样就能使得整块SSD不同位置的闪存都能做到平衡磨损。



图片:ssd.PNG
https://bbs.makertime.org/attachment/1703/thread/5_93_71e813252b72aa1.png
          我们可以发现,如果是一块全新的硬盘写入时直接写入就行。当硬盘使用了一次之后,因为之前删除的数据还保持在里面,所以需要先删除再写入,因此会出现掉速的现象。当装满之后剩余的空间就越小,那么就可能出现就在那几个小区域内连续擦写,对寿命有着很大的影响。如果主控的水平不高,那么这时候的读写速度将大幅下降,宏观表现就是卡顿。


这里我使用了我之前的三星840 120G的SSD来测试一下掉速问题。不过在测试中读取数据出现了一些偏差,原因未知。







然后将这些不同储存容量下测试结果做成曲线。
写入速度

4K-64



我们可以发现随着储存数据的增加,速度会越来越慢。


这次测试我是直接复制单个文件堆积容量的,掉速现象并没有之前使用中那么严重。难道是主控发现了是文件复制吗(可能性不大)?具体情况未知。
之前使用这块硬盘,我将它分类两个区,都是60G,其中这个区使用了55G,这时候速度已经没法看了,在使用过程中已经可以说卡得完全没法用。


总结:
1.如果感觉自己的手机卡顿,可以尝试尽量清空闪存内的数据,尽量保持闪存(硬盘),有一定空余的空间。
2.软件别装在外置储存卡上,这样速度很慢,用起来会卡顿。
3.可以定期给手机来一次磁盘碎片整理,虽然会降低闪存寿命,但是可以带来流畅度的提升。
4.买手机时,尽量加钱买大容量。
5.对于买电脑的来说,SSD别太抠门,尽量买稍微好一些的(顶级的也就没必要了),有的质量差的甚至使用了60%就会出现掉速现象,实际容量/价格也并不高。
6.使用固态硬盘的电脑尽量减小分区数量,甚至不分区更好(当然怕重装系统丢数据的人除外)。

最后是一个瞎猜~~~有的厂家让实际可用的空间偏小,说不定就是为了留下一些剩余空间防止掉速出现。比如苹果的16G实际上只能12G,在实际使用中,苹果装满了12G也确实可以保证流畅运行,并没有感到卡顿。

罗恩格林 发表于 2017-6-25 08:05:44

给德语硬盘测速点个赞

MAKER_LINCK 发表于 2017-6-29 06:43:18

也许这就是数据库不用固态硬盘当主硬盘的原因

viem 发表于 2017-8-4 16:56:00

内存掉速的话 是不是只能换了内存哦

xian333c 发表于 2017-9-8 22:24:56

SSD实际空间比标称空间小才是正常的……

就比如说为了格式化硬盘,系统就需要空间给硬盘划分区块,这点空间HDD和SSD都有……

另外最基本工作SSD也必须有闲置空间。
SSD和HDD完全不一样。文件是以个个区块储存的,并且写好的区块是不能直接覆盖数据的。在覆写数据的时候SSD只能准备一个新区块,将新数据写入新区块,然后将老区块中需要的数据复制到新区块里,最后删除老区块的数据。所以为了SSD的即使操作,SSD必须提前空余空间,准备操作时使用。
最终来说SSD都会强制性的减少SSD空间来预留出区块。

另外确实SSD为了降低掉速的影响,厂商至少会保证7.37%以上的空间。高端的SSD这点空间可能会超过SSD本身空间的20%。

上面这点空间全部去掉才会是系统里能直接看到的空间……
页: [1]
查看完整版本: 为何手机/电脑用久了会卡顿?谈谈闪存掉速的问题。