Windows 内存释放软件的原理是什么样?win7内存到底被什么样吃了

发表时间:2017-12-20 00:28:01 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《C++中delete对象时?通过C/C++/golang 如何获取Windows下进程的内存使用情况》相关知识。本篇中小编将再为您讲解标题Windows 内存释放软件的原理是什么样?win7内存到底被什么样吃了。

诸如腾讯电脑管家之类的软件

简单回答:没用。

技术回答:内存页面分配的相关技术。

科普回答:

内存以页为单位进行管理。内存页可以保存在内存中,也可以保存在本地的页面文件中。

所谓的内存清理,就是①个程序不停申请内存,从而不停的触发操作系统的内存重分配策略。直到用完系统可用的内存后再宣布释放内存,就把这些内存变成了空的状态。

在这个情况下,内存页的影响分以下几种:

① 当前程序正在使用的内存页:不动。

② 当前程序暂时并没有使用的内存页:写入硬盘的页面文件,并释放。如果当前程序要使用,就只能从页面文件再读回来。

③ IO的读缓存:删除。

④ IO的写缓存:写入完成后删除。

在Windows正常管理的情况下,对于前面的几种情况:

① 当前程序正在使用的内存页:不动。

② 当前程序暂时并没有使用的内存页:当有程序需要内存的时候,且③ · ④无法满足时,写入页面文件并标记为可以使用。但如果①直没有被使用。而当前程序又需要的时候,就可以直接再分配给这个程序。由于数据没有被清除,就不必再读①次硬盘。

③ IO的读缓存:不常用后,删除。

④ IO的写缓存:写入完成后删除。

所以结果是,只有两种情况下有效:

① 好看。

② 做好准备,为了用最快的速度迎接下①次大内存分配。比如你打算玩①个大型游戏,而想尽可能的加快载入时间,可以先做①次内存整理的动作。但实际上考虑到内存整理本身的时间,其实总时间就需要更多。

但是,就算你不人工触发内存整理的动作,当程序需要内存而当前没有可用内存的时候,操作系统自己就会按需触发内存重新分配的上述动作。

而由于放弃了读缓存,并强制写入暂时没有使用的内存页到硬盘,还在之后可能需要再从硬盘读回来,因此如果在内存整理后没有用完所有新释放的内存,这些额外的工作就毫无意义,只会拖慢速度。

题主不定啥时候能看到,留下大概的思路供有同样问题的看看吧。

这种情况很可能是内核态驱动的内存泄漏。

看看任务管理器性能标签,内核内存的nonpaged部分的大小。如果确实大的异常就用RAMMap看看内存分布,看看是不是Driver Locked使用的特别多。也可以用Windows Driver Kits (使用对应系统的版本)里面的poolmon工具具体定位是哪个驱动造成的问题。更新到新版驱动或者滚回旧版驱动即可。

——————割——————

麻烦题主给①张任务管理器,性能标签下的截图。我可能快要猜到问题所在了。

——————割——————

怀疑内存泄漏。注意观察是哪个应用程序关闭后,内存不能正常释放。也有可能是驱动,killer网卡旧版驱动就有这个问题,排查所有不是微软发行的驱动。

还有其他方法,占坑待整理。。。

编后语:关于《Windows 内存释放软件的原理是什么样?win7内存到底被什么样吃了》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《Win10 预览版 CPU 占用率为什么样会 100%?复制文件为什么样会导致电脑内存占用巨大》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题