本帖最后由 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的年代了,并不存在碎片问题,所以那些还保留着设置分页固定大小的老鸟们也可以改掉这个习惯了

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

  1. win7计算机虚拟内存,Win7系统怎样关闭虚拟内存?win7关闭虚拟内存的方法

    众所周知,内存分为物理内存和虚拟内存,硬盘空间的一部分来充电内存,满足内存不够大的用户的需求,让电脑运行更快速.如果电脑内存也足够大,就没有必要使用虚拟内存了,这样还可以节省硬盘空间.那么win7系统 ...

  2. macOS 启动关闭虚拟内存 延长SSD寿命

    前言 前段时间关于M1型号的MacBook对SSD对读写数据量巨大,可能影响SSD的使用寿命的报道引起了我的关注.查询了自己的硬盘信息,两个多月硬盘寿命掉了1%,掐指一算还能用十多年.还是有点不放心决 ...

  3. 桌面总是弹出计算机内存不足,Win10提示计算机的内存不足请保存文件并关闭程序...

    现如今,很多用户都升级安装到win10系统了,而在使用一段时间之后,可能会遇到一些问题,最近有win10系统用户反映说电脑突然弹出提示"计算机的内存不足请保存文件并关闭这些程序", ...

  4. win10设置虚拟内存_电脑内存不够用,可以试试设置虚拟内存

    今天要说的虚拟内存,好像是一个没啥用的小知识. 懂的人自己会设置,不懂的人最好不要动.不过鉴于很多小伙伴不知道这是干啥的,还是想和大家科普一下. No.1 虚拟内存是什么 电脑中所运行的程序均需经由内 ...

  5. 已提交内存过大_你还记得虚拟内存吗?可能就是你电脑故障的罪魁祸首!

    虚拟内存这个词,估计新生代里听说过的人不多. 但如果你是电脑老鸟,或者经常玩大型游戏的话,虚拟内存应该或多或少还有些印象. 在那个电脑性能相对羸弱,硬件价格又昂贵的年代,虚拟内存可以说是让人又爱又恨的 ...

  6. 操作系统原理,物理内存“扩充”技术,内存紧缩,覆盖,交换,虚拟内存思想

    操作系统原理,物理内存"扩充"技术,内存紧缩,覆盖,交换,虚拟内存 当内存空间不足以存放下进程是,需要使用到内存"扩充"技术,但不是真的扩充了内存. 截图来自b ...

  7. Linux内存管理宏观篇(七)虚拟内存

    Linux内存管理宏观篇(七)虚拟内存 前面知道了物理内存,物理内存是实打实的,我只有这么多,用的时候你只能用这么多. 为了解决一些问题,产生虚拟内存,通过虚拟内存可以让我们每个进程都能拥有虚拟的3G ...

  8. Win7计算机内存不足,请保存文件并关闭这些程序

    Win7计算机提示内存不足,请保存文件并关闭这些程序的时候要怎么处理呢,电脑使用久了就会存放各种文件或软件,这就导致电脑使用久了之后会出现内存不足的情况,想要解决这个问题,按照以下的方法和步骤来操作吧 ...

  9. win7瘦身,关闭虚拟内存,页面文件,休眠

    自从WindowsXP开始支持 ACPIAdvanced Configuration and Power Interface 以来,Windows 系统便有一个]叫做休眠的功能.当我们对电脑下达休眠指 ...

最新文章

  1. Linux下安装Java8
  2. mysql insert delay_解析mysqldump的delay-insert选项
  3. Session 时间
  4. 设计模式之Dynamic Proxy-动态代理
  5. fail2ban安全设置
  6. windows时间显示到秒
  7. Xcode6.3 怎样使用Leaks查看内存泄露
  8. linux band0 手动重启,linux相关知识整理(4)
  9. ABAP如何调用OCX
  10. 10个我最喜欢问程序员的面试问题
  11. centos安装盘ntfs_在CentOS下挂载NTFS格式U盘的方法
  12. 10大最高效的Java库盘点
  13. Win11如何将游戏隐藏 Win11游戏隐藏的方法
  14. 作者:刘松灵(1988-),男,就职于中国人民银行征信中心数据部
  15. 女孩子怎样能赚到月薪一万
  16. 子元素margin-top为何会影响父元素?
  17. caffe教程 (2)
  18. 《Windows核心编程系列》十异步IO之IO完成端口
  19. 9.2 iptables主机防火墙
  20. Leetcode013 罗马数字转整数

热门文章

  1. app微信支付后端接口编写
  2. FTP文件服务器使用点滴
  3. PHP第四方支付 - 彩虹易支付2021新版
  4. [管理]_[选择合适的项目-任务管理工具Jira Redmine Trac对比]
  5. 安装了宝塔面板的服务器,一键部署私有云
  6. python django下载 功能如何实现_Python中django文件传输下载功能的实现
  7. 只能输入字母的c语言程序设计教程课后答案,c语言程序设计基础教程_习题答案解析.doc...
  8. 全国计算机二级vb什么时候出来,关于全国计算机二级(VB)多少分可以过
  9. 数据血缘Atlas Rest-API使用
  10. 智能聊天机器人小黄鸡及其制作方法