内存压缩是Win10系统新加的一个功能,用来压缩内存,当物理内存不够用时,系统会将一部分不常使用的内存数据打包压缩起来,等到有程序需要访问那些数据的时候,再解压缩出来。且通常在物理内存上运行,并不像虚拟内存一样写入硬盘。 (且应都在内存中进行,不从硬盘读取数据,速度非常快,没有从硬盘读取数据时的卡顿感。)
尽管当前android手机6GB,8GB甚至12GB的机器都较为常见了,但内存无论多大,总是会有不够用的时候。当系统内存紧张的时候,会将文件页丢弃或回写回磁盘(如果是脏页),还可能会触发LMK杀进程进行内存回收。这些被回收的内存如果再次使用都需要重新从磁盘读取,而这个过程涉及到较多的IO操作。就目前的技术而言,IO的速度远远慢于这RAM操作速度。因此,如果频繁地做IO操作,不仅影响flash使用寿命,还严重影响系统性能。内存压缩是一种让IO过程平滑过渡的做法, 即尽量减少由于内存紧张导致的IO,提升性能。“引用见文末一链”
内存压缩会耗费CPU资源来进行解压缩操作
CPU性能羸弱且内存容量大的用户可以选择关闭获得更好的内存稳定性
————————————————
WIN加R 输入PowerShell 进入管理员身份
输入Get-mmagent 查看状态
此时会出现:
ApplicationLaunchPrefetching : True
ApplicationPreLaunch : True
MaxOperationAPIFiles : 256
MemoryCompression : True
OperationAPI : True
PageCombining : False
PSComputerName :
如果MemoryCompression 右边显示 True 就是压缩启用 显示False 就是关闭
如果是True 此时输入Disable-MMAgent -mc 关闭内存压缩
ApplicationLaunchPrefetching : True
ApplicationPreLaunch : True
MaxOperationAPIFiles : 512
MemoryCompression : False
OperationAPI : True
PageCombining : False
PSComputerName
反之输入 Enable-MMAgent 启用
如果显示拒绝访问
一,在已经打开的powershell输入:Start-Process powershell -Verb runAs转为管理员powershell模式,此时就可以输入Get-mmagent 即可
二,按住Shift点重启按钮,选择启动设置-安全启动,安全启动后 WIN加R 输入PowerShell 进入管理员PowerShell模式 此时输入Get-mmagent 即可
三,右键桌面左下角开始菜单,选择windowns powershell(管理员)即可
众所周知,操作系统在物理内存容量不足时,会将部分暂时没有使用的内存数据存入硬盘,Windows称之为"虚拟内存",Unix类称之为交换分区(swap),当后台程序被唤醒时,这部分数据再次被读入内存
但是硬盘和内存的速度/延迟差了上千倍: 机械硬盘的读取延迟为ms级,固态硬盘为us级,内存则为ns级,对于GHz级别的CPU而言,1us的时间也太长了.
于是内存压缩技术出现了,在内存中开辟一部分空间,存放不使用的内存数据,但存放前使用压缩算法压缩这部分数据,即可在内存中使用较少的空间存储之前较大的数据.由于目前CPU性能逐渐过剩,而IO成为瓶颈,内存压缩技术可以避免/减少内存使用率较高时对硬盘交换分区的使用,防止内存颠簸(频繁的分页交换)的发生.
总之,内存压缩以部分CPU资源的代价换来了更大的内存空间,同时避免了传统swap的高延迟。 “引用见文末二链”
内存压缩技术释义参考:
https://zhuanlan.zhihu.com/p/537372544
通俗参考:
https://www.zhihu.com/question/341923476/answer/870686906
https://www.zhihu.com/question/37644704/answer/74889488