[内存] 谈谈所谓的要不要关闭虚拟内存

news/2024/11/14 20:06:47/
本帖最后由 wybb 于 2018-8-5 22:14 编辑

现在主流电脑配置的内存都不小,16G属于常规,32g都算不上大,经常会有人疑惑要不要关闭系统的“虚拟内存”,或者去设置为固定值。我就从软件的角度来聊聊。
实际上很多人并不了解虚拟内存到底是干啥的,大部分人接受的常规理解就是“物理内存不够然后用虚拟内存”。实际上这个只是为了方便大众理解的不精确的说法。

首先从比较精确的的角度上来说,磁盘上分配的那个东西不叫 虚拟内存,而是叫分页文件(pagefile),pagefile属于操作系统虚拟内存管理架构,但本身并不叫虚拟内存。

操作系统可以 提交的虚拟内存大小=物理内存+分页文件。注意这里说的是 提交并不是使用。 对于操作系统来说,请求内存、提交内存、使用内存是不同的步骤


下图电脑装了16G内存,虚拟内存自动管理系统默认分配一倍大小的分页文件。所以整个系统可提交的虚拟内存大小是16+16=32G

<ignore_js_op>

QQ截图20180805153705.png (38.39 KB, 下载次数: 1)

2018-8-5 15:37 上传

</ignore_js_op>





<ignore_js_op>

QQ截图20180805145943.png (52.41 KB, 下载次数: 0)

2018-8-5 14:59 上传

</ignore_js_op>




下面使用一个测试程序,申请了128G内存,可以发现就算一台电脑只有16G内存,照样可以申请成功。同时单纯的申请并不会占用任何物理内存


<ignore_js_op>

QQ图片20180805154154.png (75.89 KB, 下载次数: 0)

2018-8-5 15:42 上传

</ignore_js_op>




内存在使用之前还必须进行所谓的提交操作(COMMIT),提交操作会消耗整个系统的总虚拟内存数值(上限=16+16=32G),下面一个测试程序提交25G的内存,这个示例中系统的总虚拟内存已经消耗了30G,但实际上程序几乎没有使用任何物理内存(0.4M),在windows下只对内存进行读写才会产生实际的物理内存消耗

假如下图中系统的分页文件已经达到设置的最大值(或者固定值),实际上整个系统还能使用的内存并不是15.9g-3.4g=12.5g的物理内存,而仅仅只有32.9-29.3=3.6g的内存可以用了,任何程序提交或使用超过3.6g,不管你物理内存还剩下多少,系统都将提示内存不足




<ignore_js_op>

QQ截图20180805155124.png (64.7 KB, 下载次数: 0)

2018-8-5 15:53 上传

</ignore_js_op>

<ignore_js_op>

QQ截图20180805155205.png (38.8 KB, 下载次数: 0)

2018-8-5 15:52 上传

</ignore_js_op>






操作系统提示内存不够的时候,实际上并不是物理内存饱和,而是虚拟内存上限(物理内存+分页文件)饱和了,就算物理内存实际还有很大的剩余,在一些情况下照样会造成系统内存不够。



部分游戏,比如古墓丽影10,就会发现这个游戏会提交相当多的内存(实际物理内存还没使用到),假如关闭分页文件或者设置了比较小的值,将导致可申请的虚拟内存上限降低,虽然16G内存足够玩这个游戏,但是还是会出现系统提示内存不够的情况。



所以,分页文件大小并不只是用来放入物理内存放不下的数据,还会影响整个系统的理论内存使用上限。一般来说还是建议让操作系统自己管理。

而且有些人会有一个习惯,把分页文件的最大最小值设置成一样,这是一个流传十几年的设置方式。在HDD的时代,在操作系统刚装好的时候,磁盘分区相对比较空闲,给分页文件固定大小的好处是可以预先分配一个比较连续的磁盘空间,避免碎片影响性能。但是现在已经是SSD的年代了,并不存在碎片问题,所以那些还保留着设置分页固定大小的老鸟们也可以改掉这个习惯了





















http://www.ppmy.cn/news/189518.html

相关文章

JUC并发编程

多线程技术可以使程序的响应更加的快&#xff0c;可以在进行其他工作的时候一直处于工作状态。性能得到提升&#xff0c;但是多线程会给程序带来多线性并发安全问题。并发的安全问题发生的原因是多个线程对同一个资源的操作而造成的不安全问题。 首先需要了解JMM&#xff08;内…

Cubase12没有声音解决办法(Windows 11专用)

本文章由CSDN 不想加班呀 原创&#xff0c;转载请注明出处。 作者首页&#xff1a;不想加班呀的博客_CSDN博客-Python爬虫,电脑小知识,程序员剪视频领域博主 目录 前言 解决办法 第一步&#xff08;进入系统硬件和声音设置界面&#xff09; 第二步&#xff08;在声音设置中…

mx150 宏碁swift3_配MX150独显 宏碁新版蜂鸟Swift3轻薄本开售

蜂鸟系列是宏碁旗下经典的轻薄笔记本系列&#xff0c;拥有多种型号的笔记本产品。今年6月&#xff0c;宏碁推出了新版蜂鸟Swift3和Swift1笔记本&#xff0c;其中Swift3系列主打多种颜色的外观和轻薄机身设计&#xff0c;金属拉丝工艺的外观使得其更具质感&#xff0c;新版Swift…

ATI显卡在Ubuntu下设置方法(很全面)

//终于看到了一个解决ATI显卡在linux的解决方法&#xff0c;先转载一个。 原文地址&#xff1a; http://forum.ubuntu.com.cn/viewtopic.php?f42&t350772&sid95f2a3cf0ccdf4c3a77f65f7138682b6 无法进入&#xff0c;有时候只要不是黑屏就继续等&#xff0c;哪怕是整个…

6.oop-类和对象

一.如何抽象对象1.创建一个类2.给该描述属性 属性就是java中所有的数据类型3.给该类定义行为方法 方法的签名是&#xff1a;public void 方法名(){方法体} 公共的 无返回类型 二.如何使用类和对象1.创建类的对象实例 Student stu new Student();2.访问对象的属性和方法&#x…

i5-8250U 宏碁swift3_【AcerSwift3评测】高端品质亲民售价 宏碁蜂鸟Swift3 14英寸版评测(全文)_Acer Swift 3 _笔记本评测-中关村在线...

宏碁蜂鸟Swift3系列笔记本产品一直以来都以精湛的制造工艺与优良的性价比著称&#xff0c;在5000-6000元级市场拥有极高的用户口碑。不同于其他厂商对主流价位产品的保守设计态度&#xff0c;宏碁蜂鸟Swirt3系列能够为用户带来多种鲜活的色彩、纤薄化的金属机身以及超长续航、指…

深度学习 训练吃显卡_【已购买】用于训练深度学习模型的GPU开发本 - 笔记本电脑(Notebook)版 - 北大未名BBS...

我是自己求推荐 男生:住在校外需要笔记本电脑。 1.预算 8000~10000 rmb,希望能用10年左右 2.选购倾向: 已看重的品牌:联想、华硕、宏基 3.主要用途 用于训练深度学习模型 4.细节要求 A.重量要求 (无所谓) B.屏幕尺寸要求 (>=13.3英寸) C.SSD要求 (512G + 1T硬盘) D.电…

显卡吧超级计算机,残暴8路Tesla V100:NVIDIA 英伟达 发布 HGX-1 超级计算机

五杀超神吧 NVIDIA STUDIO 设计师电脑主机渲染建模影视后期视频剪辑台式定制组装图形工作站 升级版1 i7 8700/RTX2060S 8G 五杀超神吧 NVIDIA STUDIO 设计师电脑主机渲染建模影视后期视频剪辑台式定制组装图形工作站 升级版1 i7 8700/RTX2060S 8G 23999元起 NVIDIA 英伟达 Shie…