分享

为什么我的硬盘空间总是不够大?

 pgl147258 2016-04-04

著名的摩尔定律说:计算机的硬件每十八个月翻一番,这一规律从计算机发明之日起还未被打破。奇怪的是,虽然硬件设备不断的更新,我们依然会觉得硬件不够用。
更大的软件和存储文件总是能完美的把扩充的硬件资源消耗殆尽。软件为什么那么大呢?这倒不是开发人员有意把软件弄大,只是在开发的时候不注意节约硬件资源而已。

一、人力成本高于硬件成本,牺牲硬件节约人力资源
早期的计算机只有几k的内存,程序以机器码或汇编语言写成,可以直接被计算机识别并运行。那个时候的程序自然是精简的不能再精简。精简对于节约计算机硬件来说是一件好事,对于开发人员和使用人员来说可就痛苦了。毕竟汇编码是给计算机看的,不是给人看的。人力总是软件开发中最贵的东西,浪费计算机的处理能力而节约开发人员的时间才是高效的做法。
怎样节约程序员的时间呢?最好就是把常用的功能封装成一个一个包,让程序员调用。就好比你出门旅游,把各类物品放在一个一个袋子里面,需要用的时候就拿出来用。你拿一个照相机出来,只需要会按快门,而不需要知道照相机的成像原理。既然封装成包,就会遇到包不使用的情况。为了开发的方便,不妨先把要使用的包都放进来然后再慢慢调用,这当然让软件变大了。

二、牺牲硬件资源提高可移植性
而且汇编码的可移植性差,不同机器上面需要重新编码,“一次编码,到处使用”,则是软件设计的目标。随着程序语言的更新,软件逐渐实现了跨机器、跨操作系统的编码,当然这是以软件消耗的空间为代价的。

三、更好的用户界面
早期的软件是在字符界面用命令行操作的。试想如果咱们发个帖子是输入很多命令,而不是点一个按钮,大家肯定要抓狂了。要有用户界面,当然要有图形了。

说到图形,首先要说一说颜色了。最早的显示屏是2色的,每一个像素点只需要1位就可以表示(解释一下位的概念,8位=1字节)。后来产生了256色,256就是2^8种颜色,需要8位来表示。现在咱们使用的叫“32位色”,用4个8位分别表示红、绿、蓝、透明度,存储一个像素点的颜色就需要32位=4字节了。
然后就是屏幕大小了,现在的屏幕越来越大,为了让用户界面盖满整个屏幕,需要的图像大小自然也越来越大。
最后就是软件用户界面中的图形不断增多了。为了更好的引导用户操作,软件中的图形当然是越来越多了。
综上所述,软件中图形占的空间越来越大了。

四、软件高复杂性
软件是不是有过度开发之嫌(即开发的功能比用户使用的多)?对于绝大部分用户来说是的,大部分用户只用一小部分的功能。但软件开发者为了尽可能的多销售软件,也会尽量提供更多的功能。
软件复杂了,需要编写的处理异常的代码也就多了。用户输入了不允许输入的数据怎么办?用户没保存就关了文件怎么办?用户电脑忽然断电怎么办?其实软件中90%的代码都是用来处理异常的,只有10%是为了实现功能的。

五、文件的透明存储
所谓透明存储就是你不知道文件存放在哪里。你知道QQ聊天记录存放在哪里么?你知道浏览网页时的缓存存在哪里么?现在越来越多的软件无需用户知道文件存放在那里。这样做的便利之处是用户不需要记忆,缺点就是卸载了软件或重装系统之后,这些文件可能还在,并且是在一个你都不知道是哪里的地方。我目前还没有见过哪个软件会在硬盘空间充足的使用提醒用户整理自己的文件的,也没见过重装软件的时候会在硬盘里面自己找到以前的文件提醒用户的(有些软件,如果你装到和之前相同的位置,会提醒你)。这也算是软件设计的一个小缺陷了吧。

说了半天软件设计的问题,其实软件才不是消耗电脑硬盘的主要凶手。
你电脑里面的照片、音频、视频……有没有发现这些东东也越来越大了呢~
为什么这些东东会越来越大呢?这就得说一说模拟信号转换成数字信号的问题了。我们日常看到的、听到的东西电脑不能直接理解,只能将它们编码成二进制。编码越长,反映出来的东西就越接近于真实(参见上面图片颜色的说明)。不管技术多少先进,通过信号传输的信息始终是真实信息的一个近似(即使你用模拟信号传也是一样的)。大家当然希望真实度更高一些,那么就用更长的编码,多消耗一些空间吧!
你想要存储什么样清晰度的图片和电影?你当然可以把它们压缩压缩,不过牺牲清晰度节约空间,看的时候不爽,恐怕自己又不乐意了呢!而不乐意的人多了的时候,网站上流传的电影,自然就越来越大了。

恭喜本答案被评为【果壳问答挑战赛】第三周最佳答案。谢谢大家的支持!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多