七、内存(memory)

1、内存基础知识

1、内存定义

内存,是作为CPU和硬盘之间交互数据时的缓冲区,提高CPU的使用效率,本身是存储设备,有个特点就是内存中的数据断电会丢失,硬盘中的数据不会断电消失。运行起来的程序和程序中临时产生的数据都会先保存在内存中。

手机上我们不叫内存,叫做运行内存,好多人说手机内存其实它说的是手机磁盘的存储容量,比如我们可能听过什么8+256,8表示的是8G运行内存,256G说的是存储,也就是硬盘容量。

这里的机带RAM,这就是内存了,我的内存是32GB大小,内存到底可以有多大呢?有大小边界吗?

2、影响内存大小的因素

内存的大小主要受限于这几个因子:操作系统、总线、CPU。

我们可以看到,我上面图中系统类型位64位操作系统,基于x64的处理器,这个x64是x86_64位的简写形式,说的是这个电脑的CPU是x86架构的,具备64位处理能力的。而我们安装软件,也就是程序员开发的软件也是分32位和64位的。比如QQ、微信、网易云音乐等等。我们自己现在安装一些常用软件的时候,基本看不到这个位数的体现了,因为我们现在的电脑系统大多数都是64位的了,而不管是32位的软件还是64位的软件都是支持安装在64位的系统上运行的。

但是如果你的系统是32位的,那么是无法安装运行64位的软件的,这又是为什么呢?接下来我们讲解一下,

3、32位64位的原理

看图:

CPU是64位的表示CPU寄存器存储的数据和CPU一次性计算的数据大小为64位的二进制数据,既然CPU能够一次性操作64位的数据,那么数据总线和操作系统也应该按照64位来进行设计,数据总线是CPU去内存中获取数据的电路线,64位地址总线表示的是数据总线一次性传输数据的大小为64位的,而操作操作系统作为各个硬件的控制程序,它应该也要支持64位数据的控制。那么也就是说操作系统能够在内存中找到64位的数据,这个我们叫做系统在内存中的寻址空间,然后数据总线将64位的数据传输给CPU,CPU正好也可以一次性加工处理64位的数据,这样CPU的使用效率就很高。

操作系统的寻址空间直接决定着所能够支持的最大内存是多少,并且决定着这个系统上可以安装的软件是64位的还是23位的,我们拿64位操作系统来举例,计算机底层存储、加工处理的数据都是二进制数据,0和1,是因为通过0和1这样的二进制方便对应控制电路的低电压和高电压,只要是运行起来进入到内存中的程序都已经是二进制的数据。

32位操作系统所能支持的最大内存为2的32次方。
64位操作系统所能支持的最大内存为2的64次方。

为什么是这样的?

64位系统使用64位地址线的最大寻址空间为2的64次方,寻址空间指的是内存中存的数,最多有2的64次方中组合,也就是只能找到这么多地址的数据,这就是地址线的寻址空间
32位操作系统地址线最大寻址空间为4GB,即便是我们加了8G的内存条,那么也只能用4GB的内存。理论上,64位操作系统的最大寻址空间位2的64次方

单位换算

1bit: 0或者1
1B = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB

我们的计算机是按照B位单位进行数据加工处理和存储的。

4、目前内存分如下几代

内存的代数:内存主频和CPU主频一样,用来表示内存的速度,它代表着该内存所能达到的最高工作频率。内存主频是以MHz(兆赫)为单位来计量的

DDR 133MHZ、266MHz等频率
DDR2 533MHZ、800MHZ等频率
DDR3 1066MHz、1333、1600等频率
DDR4 2400Mhz、2933Mhz、4300MHZ等频率,目前内存的规格主要是DDR4。
DDR5 6400MHz等频率

DDR内存一开始生产出来的时候频率是比较低的,因为当时的CPU频率也低,后来慢慢升级,越来越高,比如如下主板支持的内存规格中显示的内存描述,主要描述的就是内存频率

DDR3和DDR4图片对比

内存厂商:三星、海力士、镁光、凯侠(原来的东芝)、长江等等原厂厂商,还有一些二次加工的厂商,比如金士顿等等好多。原厂生产的内存还是比较好一些的。

5、加内存或者说升级内存的注意问题

买同品牌同型号同频率的、最好还是同电压的,如何知道自己的内存型号:拆机直接看、安装鲁大师软件进行硬件检测

看到内存是海力士DDR4的,DDR4的频率一般不会达到4267MHz的,但是很明显我的超频了,并且显示出了很多个内存插槽通道,说明我的内存是焊死在主板上的,不可以更换。如果你的只看到了ChannelA或者ChannelA和channelB,那么说明你的内存条是可以拆下来更换升级的。

有时候看不到电压,有的可以看到,如下1.1v。不考虑电压的话,很容易蓝屏

工作电压,点进去可以看到详细电压数:

如果我们升级内存时,比如8G升级到16G,可以选择买一个相同的8G的,但是买不到相应的内存怎么办,那就看看能不能找到同型号、同电压的,看看内存颗粒的原厂是不是同一个厂家的。如果还是买不到,那么我直接买一个16G内存条,之前的那个8G的不要了,就不需要考虑什么型号问题了。

2、内存颗粒

内存颗粒:其实就是内存中的芯片,内存的存储能力就靠它。4G的内存,如果有8个内存颗粒,那么每个内存颗粒的空间大小为4*1024/8=512MB。

3、内存双通道技术

当我们有两根内存时,就可以使用到双通道技术,一块数据可以分两部分写入到两个内存中,速度更快,效率更高

如何知道你的电脑是否支持双通道呢?

看主板的内存插槽

两个灰色的,两个黑色的,两个同颜色的组成双通道,比如两个灰色的就可以组成双通道,比如你插入两根内存条,那么插内存的时候,选择同色的插入。如果是一根内存条,那么随便插。两个双通道叫做四通道,上面这个就支持四通道。但是不管是双通道还是四通道,都要求内存条的容量是相等的。所以如果说同样16G的内存,两根8G内存条比一根16G内存效率高,但是稳定性差一些,有一个有问题,电脑都容易崩溃。

我整理了一份计算机基础部分合集笔记,大家可以免费查看内容。

一、冯诺依曼计算机
二、运算器和控制器区别说明
三、软硬件工作流程分析
四、CPU架构介绍和分类
五、CPU针脚
六、CPU性能参数介绍
七、内存(memory)
八、硬盘(disk)
九、显卡
十、主板
十一、计算机分类

MemoryError是一种Python中的异常,它表示内存不足。当系统的内存资源不足以满足程序的内存需求时,就会引发MemoryError异常。\[2\]这可能是由于程序需要分配更多的内存空间,但系统无法提供足够的内存。当出现MemoryError时,Python会抛出异常并停止程序的执行。 解决MemoryError的方法有几种。首先,您可以尝试扩大虚拟内存。虚拟内存是计算机硬盘上的一部分空间,用作临时存储器。通过增加虚拟内存的大小,您可以为程序提供更多的内存空间来运行。这可以通过在操作系统设置中调整虚拟内存的大小来实现。\[1\] 另外,您还可以尝试关闭一些可能限制内存的软件。有些软件可能会占用大量的内存资源,导致其他程序无法获得足够的内存。通过关闭这些软件,您可以释放一些内存空间供其他程序使用。 如果您希望在程序中捕获MemoryError并记录它们,您可以使用try-except语句来捕获异常。在except块中,您可以使用traceback模块的format_exception函数来格式化MemoryError异常的信息。这样,您就可以将异常信息记录下来以供后续分析和调试。\[3\] 总之,当出现MemoryError时,您可以尝试扩大虚拟内存、关闭一些可能限制内存的软件,并使用try-except语句来捕获并记录异常信息。这些方法可以帮助您解决内存不足的问题。 #### 引用[.reference_title] - *1* [Python程序运行中报Memoryerror的解决方案](https://blog.csdn.net/y15520833229/article/details/130589639)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [如何记录python MemoryError(当我内存不足时)](https://blog.csdn.net/weixin_39907596/article/details/110503513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值