• 为什么换了固态硬盘电脑会快?详解硬盘与内存的关系


    正文部分:

    首先我们需要先梳理一下内存与硬盘的关系,这里的内存和手机的有很大的区别,所以从这里开始你需要把对于手机内存认知的那一套全部抛到脑后,否则你会被干扰。

     

    【人类的思考】

    我们的大脑需要思考某件事,就需要把这件事从记忆里提取到思维里,然后我们的大脑针对思维里的数据去运算,也就是说,思维是我们的大脑临时存储数据的地方,记忆是我们长期储存数据的地方。

    【电脑的运算】

    我们的电脑需要运算某软件,就需要把这个软件从电脑的记忆,提取到电脑的思维,然后芯片对电脑的思维去运算,这里的电脑的记忆就是我们常说的硬盘,电脑的思维就是我们所说的内存。这里的内存又叫运行内存。

     

    上面那个例子还不明白那我就再举个例子,你吃饭需要把菜从锅里夹到碗里,然后你再对你的碗里的饭执行“吃”这个操作。电脑一样的,你吃饭这个动作=电脑运算数据,菜=数据,锅就是硬盘,你的碗就是内存,你吃饭需要夹菜到碗里,电脑算数据需要把数据从硬盘拷贝到内存里。

    相信通过上面两个例子你应该明白了CPU,内存,硬盘的关系了。那么这里你应该就能推测出来:

    内存容量的大小直接决定了你能同时开多少/多大的软件。
    硬盘容量的大小直接决定了你可以存放多少/多大的数据。

     

    【为什么换了固态会流畅?】

    举个例子,你打开一个QQ,这时候你的鼠标变成了沙漏或者圆圈,过了几秒QQ打开了。这里电脑里完成的操作就是把CPU需要的QQ数据从硬盘里拷贝到内存里,然后CPU针对内存里的QQ运算,当拷贝这个过程完成了,CPU才能开始算数,你这软件才被标记为“已打开”。

    同样的你玩游戏的时候过图或者加载的时候那个loading界面,电脑执行的操作就是把硬盘的数据拷贝到内存,因为CPU直接连接的是内存,CPU只能针对内存的数据去处理,所以加载地图的时候硬盘就会把地图这个数据打包传递给内存,当数据传输完成,地图也就读取完成了,这时候loading过程结束。

    CPU与内存之间的带宽是非常快的,随便一个内存都是30GB/S,所以CPU到内存这个来回通路不存在速度瓶颈,但是传统机械硬盘连续读写速度只有200MB/S,远远低于内存速度。

    假如硬盘不能及时把数据传输给内存,那么CPU只能空闲等着,比如你打开QQ,系统花了1分钟把QQ从硬盘传递给内存,那么在你看来很直接的感受就是卡,你也许会觉得是电脑性能不够了,实际上是硬盘传递给内存这部分花费了大量时间。就好像你忘记了某个公式,你就是再聪明,你也算不出来对应的数学题。电脑性能再强,数据不能及时传递给他运算,他也只能歇菜,Linus白嫖王说过,硬盘几乎是目前电脑里最慢的部分,所以你感受到的卡顿绝大多数是硬盘的锅。

    换了硬盘后内存到硬盘之间这条通路的瓶颈就解决掉了,所以你的电脑就会如丝般顺滑。所以换固态解决的问题在这里。

    【固态硬盘比机械快多少?】

    这里我找了个机械硬盘与固态硬盘AS SSD测速对比,大家直接看参数就行了。

    第一行为连续读写,涉及到的是单个大文件,比如一个电影,一个大压缩包,这些数据就是单个文件,但是体积很大,日常使用中一般就是游戏安装,电影拷贝,压缩包拷贝。

    第二行为4K随机读写,涉及到大量分散的小文件,比如我们的操作系统,各种软件,他们都是有成千上万个几MB甚至几KB组成的,系统读取一个后需要快速找到下一个文件然后读取下一个,这里就涉及到寻道时间了,固态找文件速度非常快,而机械需要花费大量时间去寻找文件,所以可看见上面我的固态随机读写几乎是机械的100倍速度。

    第三行为4K深度队列,这一项一般是游戏和专业软件比较多、

    第四行是访问时间,机械的访问时间达到了15毫秒,而固态只有零点零几毫秒。

     

    所以不难看出,机械真的是慢的可以,这种速度卡在内存与硬盘之间的通路上,能快就有鬼了。所以那些用着机械硬盘的电脑用久了势必会卡,这是绝对的,我爸的电脑CPU是E5800+6G内存,这个8年前的CPU他还在用来弄表格,当时他用的机械硬盘说卡,然后我给他换了个固态三星750EVO,然后重做了系统,目前这台电脑仍在他的办公室服役,不说性能,就说速度比某些网吧不知道强多少,网吧系统流畅除了和每次重启都刷新系统有关还和硬盘有关,一般网吧都是无盘系统,直接走的服务器读取系统和文件,而服务器那都是大量固态硬盘组的阵列。

    【固态硬盘相对于机械的优劣】

    固态速度快自然是美好的,但是价格也是美好的,固态平均1G就需要1-2块钱,128的得300左右,256的也得四五百了,而机械1000G也才300块钱,所以那些想要纯固态的还是加预算吧。

    既然固态贵,总有折中解决方案,那就是固态+机械,弄一个小容量固态把系统和常用软件放进去,游戏等大文件放机械,这是目前最主流的解决方案,既能保证速度又能降低预算,还能解决大文件存放需求。

    固态还有一个问题就是有物理寿命,机械硬盘只要机械结构不损坏理论上是可以一直用的,但是固态的数据颗粒写入次数达到一定水平就会突然暴毙,而且无法恢复,机械只要磁盘本身没坏,通过专业的数据恢复中心还是可以找回来数据的,不过固态目前寿命也很客观,目前的主控对于固态的数据读写有着严格的算法控制,一般的固态只要不是天天24小时写数据,用个5年还是基本牌的,而很多机械的寿命也不过5年,所以就目前的技术来说,固态的寿命是不需要担心的,不过大型企业为了数据安全一般不会把数据放在固态里,他们大多采用的是机械磁盘阵列。

    【把数据都放固态有必要吗?】

    系统是必须要放固态里的,因为系统本身文件相当碎片化,涉及到大量的随机读写,如果放机械就会导致系统不流畅,放在固态你会发现windows也可以和ios一样丝滑。常用软件比如QQ,微信,浏览器,输入法推荐放在固态里。游戏根据情况适当放,因为数据如果被读取到内存里去以后,就和硬盘没关系了,CPU只和内存交互数据,不和硬盘交互了,所以看游戏具体是否经常读写内存和硬盘,比如吃鸡就必须放固态里,DNF也必须放,而LOL啊守望啊之类的不吃硬盘的就没比要放在固态里了。像什么文档表格,视频,音乐就扔机械里就行了。

    【未来的展望】

    评论区有人提到了一件事,为什么不直接从锅里吃饭呢,这个问题非常精髓,为什么CPU不直接和硬盘交互数据呢,这就是技术限制了,实际上,CPU并不是直接访问内存的,在内存和CPU之间还有缓存,这就是CPU的CACHE,L1 L2 L3 以及前端总线,L1是目前速度最快的缓存,我们人类无法以低成本量产巨大容量的L1,所以我们只能用L2 L3 内存这样的无限趋近于CPU速度的缓存来解决这个问题,其实就应该让CPU之间访问磁盘数据,但是我们的技术达不到,我们没法把硬盘造的那么快,所以只能用缓存来逼近CPU的速度,也许将来的某一天,硬盘速度和内存一样了,那内存也就会彻底消失了。

     

    最后是全文总结:

      1. 内存与硬盘就像人的思维与记忆
      2. 电脑的卡顿和不流畅主要是受硬盘影响,和电脑本身性能没多大关系
      3. 目前硬盘是电脑中最慢的部件
      4. 更换固态硬盘可以显著提升流畅度
      5. 固态硬盘贵,纯固态对于普通人不合适,机械+固态是折中解决方案
      6. 游戏放在固态里只会提升加载速度,不会提升运行效率。
  • 相关阅读:
    JS中的call()和apply()方法和bind()
    reactjs入门到实战(十)----one-first_app
    49-Reverse Linked List II
    48-Merge Sorted Array
    47-Generate Parentheses
    46.Valid Parentheses
    45-Letter Combinations of a Phone Number
    44-Count and Say
    43-Reverse Nodes in k-Group
    42-Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/pengyong1211/p/11133019.html
Copyright © 2020-2023  润新知