小白扫盲之-计算机为何需要内存

很多人在购买计算机时,在碰到内存时会 有点懵比。

不知道 选多大内存, 对计算机的影响,或者说对计算机的作用是什么。 其本质的问题就是。(老子不知道内存是个什么鬼,还他妈这么贵!)

so  简单剖析一下。

first:

计算机必备的几大组件:

  CPU:

    CPU和人脑差不多。 人脑有两大功能。 1.提供逻辑的运算, 2.记忆/存储功能。

    but     CPU 和人脑的区别就是,CPU只有逻辑运算的功能。所以CPU能做的事情,就只有运算。  CPU是没办法记忆数据的。

    so     CPU想要进行数据的运算,比如 1+1=2   那么 数字  1  就是数据源。 没有数据CPU算个屁啊。

    那么 数据源从哪里来呢? 就是从内存中来。

    内存:

    所以内存的作用就是存储运算的数据。    然后又有问题了,内存的数据又从哪里来? 那肯定不是自己造出来的。

    内存里面的数据,是从硬盘来的。

硬盘:

    所以 CPU 计算的数据。  是从硬盘来的。 也就是真正的数据源。

    平时存各种东西,word文档,资料,小黄片。 都是存储到硬盘上面的。

  主板:

    主板就是一块电路板, 作用就是链接  CPU  内存  硬盘  等,让他们之间的数据可以传递。

  显卡:

    比如想玩游戏,那你就要有显卡。 显卡其实很像CPU也是用提供计算的。 显卡里面用的那个叫 GPU
    不同之处举例来说就是:

      CPU == 10000个小学生    每天计算 + - * / 这种简单的计算

      GPU == 1 个大学生。 用来算一点超级复杂的东西。

    一般平时大家的工作大部分都是,简单的计算计算就好了,涉及不到很牛逼的东西。所以有10000个小学生,就能很快的计算完了

    但是你要用一个大学生去计算这个简单的东西, 那他的效率,拍马都赶不上10000个小学生。

  网卡声卡等等就不谈了!

然后问题就是, 硬盘也提供数据,内存也提供数据。  CPU计算用的数据,最终是从硬盘来的。那么为啥子还需要一个内存在中间 当个中间商?为啥不让硬盘直接就给CPU呢?

绕这么一大圈的原因;就是因为 硬盘的传输速度太慢了。非常的慢。

硬盘跟进结构不同可以分两种硬盘:

  1. 机械硬盘(HDD)

    基本原理就像,留声机。  一个探针在一个盘上,就这么转。 然后声音就出来了。(讲不清 随便一个硬盘就够你研究一辈子)

    HDD 分 5400转  7200转。    5400的每秒钟可以读写 60到80兆这样。  7200的每秒钟可以读写 100到150兆这样子。

      企业级的一般可以到10000转这样。 每秒钟也就 200兆这样子。不过很贵。

  2. 固态硬盘(SSD)

     普通的500MB每秒,  你用了PCI-E的专业的插口, 也就到 1500MB每秒。

那有多慢呢? 做个比喻:

  先说CPU的速度:  我的电脑是 i7CPU  2.67赫兹的主频。   大概每秒钟的运算次数是30亿次。 64位的CPU每一次的吞吐量换算成大小的话,就是 8个字节(bytes)。速度那是相当的快。

  比如处理全国人的身份证号:

    全国 14亿的人口, 每个人的身份证号是  18位。  那么存起来的话 大概在 23G 这样子的一个大文件里面。

    1024bytes == 1KB

    1024kb == 1MB

    1024mb == 1GB

    那么让CPU把这个文件 从头到尾扫描一遍需要多少时间呢?

    每次吞吐量是8个字节。那么每秒钟CPU就可以吞吐 240亿的字节。 240亿的字节 大概就等于 22.3GB。 那么也就意味着把这个文    件扫描一遍 CPU 就用一秒钟就好了。(这么一想真是相当的快啊。 一秒钟全国人的信息就被搞定了)

  然后问题就来了, CPU只是用来运算的,他自己又没有数据。

    如果没有内存,光靠硬盘的话来看一下:(就以普通的每秒钟100兆的这种硬盘。)

      23GB  /  100MB  大概就需要 230秒。  4分钟不到。

  同志们!同志们!同志们!  这下差距就来了, 一个23G的文件。 CPU一秒钟就搞定的事,但是苦于数据要从硬盘拿CPU要等着硬盘把数据拿出来才能处理。  原本1秒就干完, 硬生生的等了 4 分钟。(这就是犯罪啊, 前戏半小时,正事一秒钟。 一秒钟好男人就是你。)

即使使用最快的固态硬盘,那也需要大概20秒钟。 但是相对于CPU来讲,还是太慢了。  1秒比20秒,没得比。

还有一个大问题就是, CPU运算完数据之后。这个数据就直接丢掉了。他是不会存储的。  那么也就意味着如果想再算一遍,那就又要从硬盘里面把数据拿出来一便。(这个速度不能忍啊)

所以!所以!所以! 这个时候内存就出世了。

  内存的作用就是,在CPU运算之前,把这23G的数据从硬盘先读取的内存里面。(依然是4分钟,这个是节省不掉的)。 然后一般主流的内存的读写速度是多少呢?  大概在 10G到15G 美每秒。(这就很接近CPU的吞吐量了,CPU和内存相互等待的时间,就可以忍受了)。 并且好处是如果你扫描到一半又想从头开始从新的扫描一下。  那么也不需要再到硬盘拿数据。直接从内存拿就好了。

内存这么牛逼为啥不直接用内存,干嘛还要用硬盘?

  1. 内存的原理是用的 电脉冲的信号,电流的速度是很快的都接近光速了。 所以内存速度快。 但是问题就是 有电的时候还好,一断电内存中所有的数据,就全部丢失了。(比如平时写个word文档,突然断电了。你没保存 那就白写了,因为内存里的数据都没了)

  2. 所以硬盘就必须存在,虽然速度慢,但是可以长期的保存。 也就是常说的 持久化存储。

所以 硬盘 和 内存那个都不能少。

一般买电脑:

  内存:  8G   家用 办公 就够了。 想玩游戏 配置到16G  或者32G。  (尽量选择两根8G, 不要选单根16G。 性能能高出3成到4成)

  

原文地址:https://www.cnblogs.com/chengege/p/11108153.html

时间: 2024-11-11 03:47:29

小白扫盲之-计算机为何需要内存的相关文章

计算机基本原理之内存编址

内存编址目的 存储器由一块块的空间(存储单元)组成,为了方便寻找到每一块空间,我们需要对每一个空间进行标识--内存编址. 内存编址概述 芯片 存储器由若干个芯片构成. 内存容量 存储器的大小.内存容量=每个芯片容量*芯片个数. 每个芯片的容量=一个地址代表的容量*编址总数. 数据总线 计算机一次处理n位的数据,则数据总线的长度为n.注意的是:数据总线的长度,并不一定代表一个地址的长度. 字 和数据总线紧密相关.数据总线有几位,则一个字就由多少位组成.如64位计算机,表示一次可以处理64位数据,则

如何检测计算机最大支持内存

一.电脑最大支持的内存由  硬件+操作系统=决定支持的最大内存1.打开“开始”菜单,点击“运行”按钮2.在弹出来的窗口输入“CMD”,然后确定或者按下回车键3.在命令窗口输入“wmic memphysical get maxcapacity”然后敲下回车键4. 然后电脑会给出一串以千字节为单位的数字.再把这串数字换算成我们常见的GB单位的 换算方法是:“得出来的数字/(除以)1024/(除以)1024“ 二.补充说明:1.操作系统不同,主板不同,那么它们所支持最大内存容量也是不同的2.Win 3

小白扫盲:Android 设备的CPU类型(通常称为”ABIs”)

早期的Android系统几乎只支持ARMv5的CPU架构,但是现在不同了,你知道现在它支持多少种吗?7种! Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一个相应的ABI. 应用程序二进制接口(Application Binary Interface)定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从

浅谈javascript性能-管理内存

上次说到,javascript脚本到底应该放在哪里?用什么用处? 以下2点: 在Html.Body部分中的JS会在页面加载的时候执行.即-用户触发一个事件的时候执行的脚本.eg:onload事件... 在Html.Head部分中的JS会在被调用的时候执行.即-常被用来生成页面的内容. 总而言之:将Javascript标识放置<head>...</head>在头部中间,此时,*.js文件的提前调用:也就是说代码放在<head>区域载入的时候,就同时载入了代码,你再<

Python笔记_第一篇_童子功_0.内存详解(含位运算)

Python的很多教材中并没有讲内存方面的知识,但是内存的知识非常重要,对于计算机工作原理和方便理解编程语言是非常重要的,尤其是小白,因此需要把这一方面加上,能够更加深入的理解编程语言.这里引用了C语言关于内容的详细讲解,其实很多知识都是相同的. 第一部分:程序(计算机运行)为什么需要内存? 对于内存的理解是对编程语言直接相关的,如果没有对内存有很深的认识的话,对于编程语言也就是没有根本的认识,编程语言跟内存有千丝万缕的联系. 1.1 计算机程序运行的目的 计算机为什么需要编程?编程已经编了那么

补基础:自学:计算机科学导论 第五章 计算机组成

计算机的组成部件分为三大类(或子系统): 中央处理器(CPU) 主存储器 输入/输出子系统 5.1 中央处理单元(CPU) 用于数据的运算. CPU又有三个组成部分: 算术逻辑单元(ALU):可对数据进行,逻辑.移位和算数运算 控制单元:控制各个子系统的操作.控制是通过从控制单元发送到其他子系统的信号来进行 寄存器组(快速存储单元):用来临时存放数据的高速独立的存储单元. 1. 数据寄存器     提高运算速度,保存这些运算的中间结果 2. 指令寄存器     CPU从内存中逐条地取出指令,并将

【转】深入理解JVM—JVM内存模型

http://www.cnblogs.com/dingyingsi/p/3760447.html#3497199 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,用来缓解这种症状,因此,现在CPU同内存交互就变

JVM(java 虚拟机)内存设置

一.设置JVM内存设置 1. 设置JVM内存的参数有四个: -Xmx   Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定: -Xms   Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值: -Xmn   Java Heap Young区大小,不熟悉最好保留默认值: -Xss   每个线程的Stack大小,不熟悉最好保留默认值: 2. 如何设置JVM内存分配: (1)当在命令提

Java虚拟机(JVM)中的内存设置详解

在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步. PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance. GC(Garbage Collection)应该不会对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很