美文网首页让前端飞程序员
新手程序员都有一种痛叫: “你能帮我推荐一款电脑吗? ”

新手程序员都有一种痛叫: “你能帮我推荐一款电脑吗? ”

作者: 560b7bb7b879 | 来源:发表于2018-10-21 15:52 被阅读2195次

    “程序员虽然写代码,但是不会修电脑;就像范冰冰虽然演电视,但是不会修电视一样”。

    程序员,真的被误会了。

    329.jpg

    不过呢?

    每当收到一些刚开始学习编程,正在学习编程的,或者已经工作的新手程序员读者们让我帮忙选电脑的请求时,我还是认真地回答。

    可是每当我答到内存、CPU、SSD的时候,很多童鞋又不懂。其实个人觉得,在信息时代,人人都应该掌握一些计算机组成和体系结构的知识,特别是相关专业的童鞋。

    所以,我决定以后咱们有空的时候也讲讲计算机组成。

    今天,我们就先聊一聊硬盘吧。

    1

    磁盘原理及笔记本防坏指南

    千万别没事开着机就端着你的笔记本电脑到处走动,很容易坏的!

    笔记本电脑和台式电脑相比有一个很大的缺点,就是硬盘容易坏(HDD-机械硬盘),因为笔记本电脑需要经常移动,容易把硬盘给震着,但这好像也是笔记本的优点吧。

    为什么笔记本的硬盘容易坏?

    那我们就得先了解机械硬盘的构造。在介绍硬盘之前先来介绍一下留声机。相信大家都在电视上见过下图中的这个玩意,它叫留声机,是伟大的发明家爱迪生先生于1877年发明的。

    image.png

    它的原理其实很简单,盘片上有很多凹槽,当指针和凹槽接触的时候,针尖随凹槽波动而轻微地振动,从而转化为声音,大家就可以听到美妙的音乐了。

    其实计算机磁盘也是这个道理,如下图是一个拆开的磁盘,可以看到,磁盘上也有一个读写头。

    image.png

    和留声机不同的是,读写头和光盘面是不接触的,他们之间通过磁性来传递信息。也就是说,磁盘是用磁介质来存储信息的。

    如果你经常听见你的笔记本电脑内部有什么东西在细微震动,那多半就是你的磁盘在飞速转动。

    此外,磁盘并不是像上图那样只有一面,如果夸张地把磁盘内部结构放大,它应该是下面这个样子的:

    image.png

    这样一个看起来薄薄的磁盘其实一共有n张光盘共2n个面,每个面都可以记录信息。如下图中的左半部分所示。

    每个盘面都有一组被称为磁道的同心圆,就如下面的磁道0、磁道1等等;每一个磁道又被划分为一组扇区。(这里很多同学可能会理解错误,扇区指的不是那个扇形,而是那一小段圆弧)。

    扇区与扇区之间有一些间隙,把扇区隔开。

    image.png

    每个扇区都可以存储数量相等的数据位,通常是512字节。前面加粗的字不知道大家有没有发现不对劲的地方?

    对于圆弧形的扇区来说,越靠近圆心的圆弧就越短。既然每个扇区的磁道长短不一,为什么还存储着同样大小的信息呢(通常是512字节)?

    没办法,就是这么蛋疼。在讲这个蛋疼的事情之前,我们还需要再了解一下柱面。柱面指的是所有盘面到主轴距离相等的同心圆的集合。可以参考上图右面的那个示意图,比如图中有4个光盘,8个盘面,那么一个柱面就由8个同心圆磁道构成。

    好了,讲了柱面我们继续讲刚刚那个蛋疼的事情。

    从上图左边的示意图可以看出,无论是靠近圆心的磁道还是最外圈的磁道,都被分割成了数量相等的扇区,并且每个扇区存储的数据量是一样的。

    这样就会造成,靠内的扇区之间间隔很小,而越往外扇区之间的间隔就越大,如果非要用一句人话来描述就是:越往外,磁道记录信息的密度就越低。

    扇区数目是由最靠内的磁道能记录的扇区数来决定的,这就是最坑的地方,最里面的磁道能划分为多少个扇区,那么最外层的磁道就必须存多少个扇区。十分浪费,当然,人类肯定不能一直这样设计。

    后来有一种新的技术出现了,就是多区记录,什么意思呢?

    用大白话说就是,假设一个磁盘有200个同心圆(柱面),之前200个柱面都按最里面的那个柱面来划分扇区。

    现在的多区技术就是,把200个柱面划分为x个组,我们这里就假设成4个组,每个组50个柱面。

    第一组的150个柱面以第1个柱面为基准划分扇区;第二组51100柱面以第51个柱面为基准划分扇区...以此类推。

    这样就更高效地利用了磁道的存储位。

    image.png

    当计算机开始运行,磁盘也开始飞速转动,然后读写磁头转动,就可以在相应的磁道中读写数据了。

    讲完了原理,我们来讲讲你的笔记本电脑为什么容易坏。其实很多同学的笔记本坏了,多数时候都是磁盘坏了,那么磁盘为什么这么容易坏?

    因为它转得实在是太快了。。。给个量化的指标,最外层的磁道和读写头之间的相对速度(学过物理的都知道线速度和角速度吧,这个自己转化yy一下)是80km/h。

    做个不恰当的比喻,如果地球按这个角速度自转,那么地球自转一周也就需要8秒钟而已。在这种情况下,我想你绝对会被甩出银河系,地球也瞬间瓦解。

    磁盘在高速运转的情况下,你拿着它到处走动,读写头很容易和盘面碰到,因为它们仅仅相距0.1微米。一点点小撞击,就能毁了你的磁盘。

    所以,记住了。

    电脑开着机的时候少拿着走动,关了机以后再放进书包带走。当然,如果你的电脑硬盘是固态的,那就请你随意走动,电脑开着机拿手上跳个广场舞也没事。

    关于固态硬盘,后面我们慢慢道来。

    2

    算法上的优化

    为什么说,程序员在知道了计算机底层原理以后能写出更优秀的代码?今天我们就用一个例子来说明。

    如果你了解一些数据库的优化算法,你应该听说类似的优化策略:随机读转化为顺序读,随机写转化为顺序写。

    为什么要转化呢?

    因为随机读写真的很慢。

    磁盘在读写数据的时候,时间主要消耗在三个地方。分别是:寻道时间,旋转时间和传送时间。

    大家只要看了上面的内容,大致应该知道磁盘读取数据的流程。首先是寻道,也就是传动臂的读写头要先移动到对应的磁道上,这个过程所花费的时间叫寻道时间。

    找到了磁道以后还不能马上读取数据,还需要找到相应的扇区才能开始读写,所以磁盘还要旋转,把对应的扇区转动到读写头下方,这个过程所花费的时间叫做旋转时间。

    在找到目标扇区以后,剩下的时间就是传送时间了,也就是数据的写入和读取。

    为什么随机读写慢,顺序读写快?

    答案很明显,随机读写每次的时间花销都由上述三部分时间构成;然而顺序读写省去了前两部分时间。

    看到这里,你已经可以装逼地给别人讲一下,为什么有一类算法要把随机读写转化成顺序读写。

    3

    一块SSD拯救了我的电脑,也就是固态硬盘。

    image.png

    我那台老笔记本在用了4年后,有点扛不住了,所以我买了一块250GB的固态硬盘给换上,再自己加了一块4GB的内存,然后给它装上了一个Ubuntu系统(Linux),感觉它就像迎来了新生。我感觉它的性能提升了不只10倍。

    这主要归功于那块固态硬盘,为什么固态硬盘这么牛逼?

    因为固态硬盘采用的是闪存技术,其实你的U盘、手机存储都是闪存。

    首先,固态硬盘不容易坏,因为固态硬盘中已经没有那个旋转的磁盘了,所以即使是开机状态你拿着它到处走也没事。

    其次,固态硬盘的读写速度大约是机械硬盘的5~10倍,对于游戏玩家和开发者而言,这无疑是一个巨大的改善。

    所以我的这台电脑换了固态硬盘之后,就被我放在家里装上各种数据库做存储系统了,时不时跑一些任务,性能也是杠杠的。

    如果你看到了这里,相信你已经对硬盘已经有了初步的了解,在选购计算机的时候也可以看看相应的参数啦!今天的硬盘就讲到这里,之后有空我们再聊聊其他硬件,比如CPU、内存或者是主板。

    这里推荐一下我的前端学习交流群:784783012,里面都是学习前端的,如果你想制作酷炫的网页,想学习编程。自己整理了一份2018最全面前端学习资料,从最基础的HTML+CSS+JS【炫酷特效,游戏,插件封装,设计模式】到移动端HTML5的项目实战的学习资料都有整理,送给每一位前端小伙伴,有想学习web前端的,或是转行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴欢迎加入学习。

    点击:加入

    相关文章

      网友评论

      • 梦里风吹过:程序员的话推荐MacBook Pro新款16G内存的(不推荐8G的,Mac吃内存很严重,我的15款16G内存同时开IDEA,Xcode,Android studio,Photoshop在加上其它类似微信QQ之类的常用APP不卡),硬盘256G的的基本上够用,能用好长时间了,而且绝大多数的开发都能用,我的工作用了三年多了,几乎没卡过。价格的确贵,但物有所值。
      • 芒鞋胜马:范冰冰不会演电视,但是她真的会逃税!
      • Hi_Felix:说了个啥啊
      • justCode_:这个问题,很简单呀,京东,选大品牌,比如联想,惠普,戴尔。选贵的就行。电脑这玩意,只要是正品,那就是一分钱一分货。反正我选电脑,就是公司给多少预算,就买多贵的。如果公司给的预算比较多,那就直接苹果呀,都不用选,按价格高的挑。
      • 风儿xffffffff:为啥不说固态的成本和数据恢复的不可能呢
      • db20567e2dbd:手动拆了一个硬盘,藏在纸后面的螺丝真的恶心,还有里面的铁的化合物,撒了一地

      本文标题:新手程序员都有一种痛叫: “你能帮我推荐一款电脑吗? ”

      本文链接:https://www.haomeiwen.com/subject/zbpbzftx.html