我的内存去哪了(电脑内存不能说的秘密)

2022-09-30 21:20:19 百科大全 投稿:一盘搜百科
摘要大家打开任务管理器,点到性能这一栏,会发现很多晦涩难懂的词汇,什么已提交啊,以缓存啊什么的,并且大家会发现,点到详细信息这一栏,大家可以尝试计算一下,把这个内存专用工作集占用的内存逐条用计算器加一下,

大家打开任务管理器,点到性能这一栏,会发现很多晦涩难懂的词汇,什么已提交啊,以缓存啊什么的,并且大家会发现,点到详细信息这一栏,大家可以尝试计算一下,把这个内存专用工作集占用的内存逐条用计算器加一下,并不是等于实际的内存占用率。这是为什么?难道是内存厂商和微软进行py交易的实锤证据?当然不是啦。今天呢,我就来给他讲一讲windows的内存管理机制。

我的内存去哪了(电脑内存不能说的秘密)

Windows内存占用不仅仅是你任务管理器所看到的内存占用量,还会包含一些其他的内容,例如硬件保留的内存是缓存,磁盘io缓存等等。我们先来看看这张图,让大家猜猜这台电脑内存实际使用率是多少。给大家五秒钟把结果打在弹幕上。有人会说,这还要问吗?这不明摆着吗?六, 68%呀, no no no,答案是99%。此时你再运行新的程序, windows就会报内存不足了,是不是很意外?但它是真实存在的。大家在任务管理器的详细信息里表头点击右键,会有一个隐藏菜单,叫做选择列,可以把提交大小选上,并且会有很多跟内存相关的栏目,微软估计是怕用户搞不清楚,默认实际上只有一个栏目,叫内存专用工作集。这些到底是什么意思呢?首先,应用程序需要运行,就要申请内存,而申请内存这个过程就叫做提交。举个例子,你创建一个虚拟机,内存设置为4g,而你运行起来后发现任务管理器里不会看到直接占用4g,所以系统会为你保留4g的内存空间,而任务管理器看到的却是实际使用的量。聪明的朋友就会问了,这样岂不是占着茅坑不拉屎嘛?必定会有一部分内存被活生生的浪费了。没错,确实如此,但微软并不会让它真正的浪费,所以虚拟内存就在这时候起作用了。

我的内存去哪了(电脑内存不能说的秘密)

虚拟内存会将你申请的这部分内存没有用的部分划入页面文件,把物理内存也就是内存条里的内存划拨给真正使用的部分,这样才能最大化内存使用效率。这也就为什么哪怕你内存很大16 g, 32 g,也不要自以为是的把虚拟内存禁用,这样反而会大幅度降低你内存的使用效率,大家可以看到,几乎每一个进程实际使用都是比申请的小,有的甚至小很多,所以你是希望你的进程大量的占着茅坑不拉屎吗?网上很多所谓的优化系统方法都是不可取的,所以大家要明白,真正的内存使用量是已提交,这里已提交若已经到了上限, windows是无法运行新程序的。为了更能让大家理解这个题提交,我们来做一个实验,我们请出宇宙第一idevs 2015,我们来创建一个命令行工程,这段代码就是来申请内存的,我们来做一个循环,每次循环申请100兆内存,我们测试一下效果, get ch这个就是让程序暂停,按回车继续,方便我们观察内存变化。大家可以看到我们的内存使用量并没有变化多少,而你提交带有规律的增加,然后我们再加一行代码,用mac将内存赋值,让系统认为我们得到内存有在使用。

我的内存去哪了(电脑内存不能说的秘密)

大家看看,这回不仅是已提交增加了,工作级也同步增加了,我们在测试已提交满时啊,物理内存有空余时,系统会出现什么状况,大家可以看到windows在扩大虚拟内存的容量。我们把隐藏文件打开,可以看到page fire在同步增加,这里我们在设置里可以看到我们的页面文件是交由系统管理的,也就是说系统会自动增加虚拟内存的大小,所以我们再次建议不要再修改这里的设置,如果这里限制了上限,则程序会崩溃,要不要我们试一试?我们把页面文件关闭,重启电脑。这回我们可以看到我们我们的已提交上限等于物理内存的大小,这台机器我们只分配了2g内存,然后我们运行没有mac的版本,可以看到内存没有变化,而已提交在不停的增加,因为是没有虚拟内存的,所以提交上限是固定的,所以当我们即将占满已提交时,系统会提示内存不足啊,左边可以看到物理内存明明还剩那么多,然后我们再开启一个有mvc的版本,没两下就崩溃了。所以大家知道不要乱改系统设置了吗?总结一下,本视频就是给大家介绍了并实现了windows的内存管理机制。好了,如果学到了知识,别忘了给我一键三连鼓励一下我哦。

TAGS: 内存  大家  点到  一下  发现  计算  逐条  什么  
声明:一盘搜百科所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系 88888@qq.com