虚拟内存关闭,但任务管理器中程序还是占用虚拟内存

shidishui 2010-01-04 02:48:13
如题,把虚拟内存关闭,即无分页文件,但任务管理器中进程依旧占用虚拟内存.pagefile.sys or 虚拟内存等同?
...全文
1046 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenhao1988 2010-01-07
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 peter1123 的回复:]
[/Quote]
终于找到答案了。
在任务管理器的进程页中,“内存使用”和“虚拟内存大小”造成的误解很多,而实际上,这两个值是对应性能监视器中该进程的WorkingSet和Private Bytes,WorkingSet是指一个进程的4GB虚拟地址空间中被映射到RAM中的部分的大小,通常是该进程的虚拟内存中的活跃部分。表面看来这个表述和“进程占用的RAM大小”没有太大区别,但至少有两种情况导致了例外的发生:第一种是这部分虚拟内存如果是属于2G的系统共享虚拟内存,那么它映射到的RAM地址可能和其他进程有重复,计算多个进程占用RAM总和就不正确,使得所有进程的WorkingSet之和比实际占用RAM要大。第二种是一个进程中可能有同一段RAM内容的多个引用,比如一个文件被loop多次,此时虚拟空间中会有多段地址被映射到同一段RAM上,从而造成该进程的Working Set比实际占用RAM要大。
  Private Bytes是一个进程的2GB独占虚拟地址空间中用到的部分的大小,无论这部分是在RAM中还是在页面文件中,甚至是在exe、dll等文件中。所以,任务管理器进程页中的虚拟内存绝对不反映pagefile.sys的用量。

  所以,任务管理器无论是进程页还是性能页都不能直接反映pagefile的使用情况,诸如“关掉pagefile还能看到虚拟内存”之类的疑问,应该很清楚了。
引自:http://bbs.yyon.cn/viewthread.php?tid=85920
shidishui 2010-01-06
  • 打赏
  • 举报
回复
可能我理解错了,呵呵,不过俺问的清楚了。帮你顶。
peter1123 2010-01-06
  • 打赏
  • 举报
回复
OMG 十滴水 你没弄明白我的意思!


其实各位所说的我都明白;
当pagefile.sys设置为无的时候,系统强制从物理内存里调用虚拟内存,也就是把虚拟内存挤到物理内存。
在此是否先可以得到一个结论: 禁用虚拟内存可以带来系统性能的提高?只有特别情况,如使用PS或3D等大型软件的时候才会出现虚拟内存不足的情况(前提是物理内存足够)

OK,继续
这里不能发截图,很郁闷,我口述吧
pagefile.sys我设置在D:\pagefile.sys 大小是256M~1024M 仅此一个
系统刚重启后,D:\pagefile.sys = 256M 这没问题,我查看虚拟内存使用才80M左右
打开魔兽世界,进程也就是 WOW.EXE 从任务管理器查看该进程 内存使用500M,虚拟内存大小500M。
然而D:\Pagefile.sys 依然为“256M” 我本以为它会变成500M更多,毕竟我限制它的上限是1024M


难道是魔兽世界对虚拟内存处理有特别的优化?

我的电脑配置是 windows2003 E8400 2G*2内存 P45主板
shidishui 2010-01-05
  • 打赏
  • 举报
回复
看到另一个问题引出来的,原题是pagefile.sys是256m,但某一进程占用虚拟内存500m多,当时以为pagefile.sys等同虚拟内存,有点纠结,然后就关闭虚拟内存了。谢谢楼上的几位。
ljc007 2010-01-05
  • 打赏
  • 举报
回复
楼主为什么要关闭虚拟内存呢?
xman_78tom 2010-01-05
  • 打赏
  • 举报
回复
lz 关闭的是页面文件,用于将物理内存页保存到文件系统中。

而虚拟内存是 windows 系统的内存管理方式——每个进程并不直接去存取实际的物理内存,而是通过虚拟内存存取数据,而系统的内存管理器会将虚拟内存映射为物理内存和页面文件,从其中存取数据。
reallovelt 2010-01-05
  • 打赏
  • 举报
回复
那个应该是页面系统吧,肯定是需要的
古井荡月 2010-01-05
  • 打赏
  • 举报
回复
为什么老要和系统正确配置对着干呢?
chenhao1988 2010-01-05
  • 打赏
  • 举报
回复
Can the Virtual Memory be turned off on a really large machine?
Strictly speaking Virtual Memory is always in operation and cannot be ‘turned off’. What is meant by such wording is ‘set the system to use no page file space at all’.

This would waste a lot of the RAM. The reason is that when programs ask for an allocation of Virtual memory space, they may ask for a great deal more than they ever actually bring into use - the total may easily run to hundreds of megabytes. These addresses have to be assigned to somewhere by the system. If there is a page file available, the system can assign them to it - if there is not, they have to be assigned to RAM, locking it out from any actual use.

cnzdgs 2010-01-05
  • 打赏
  • 举报
回复
虚拟内存和分页文件是不同概念。应用程序使用内存的都是虚拟内存,由操作系统根据实际需要为其分配物理内存或者将数据写入分页文件收回物理内存。无分页文件不表示禁用虚拟内存,只是此时的虚拟内存都分配了物理内存而没有保存在分页文件中。
chenhao1988 2010-01-05
  • 打赏
  • 举报
回复
虚拟内存是不可能关闭的。一般说的关闭只是说,让系统用物理内存的空间当虚拟内存用。
进程只知道虚拟内存的地址而已,然后CPU将虚拟内存指令到物理内存上。
Virtual Memory跟Swapping是不同的概念,CPU的地址都是Virtual的经过Pagetable转化为Physical的,LZ关闭的是swapping而已

wciwtw 2010-01-05
  • 打赏
  • 举报
回复
关于楼主的问题,我也遇到过。那时我也很纠结这个问题。
我只知道内存分物理内存和虚拟内存,好像windows上的程序都会用到虚拟内存。但最好不要把虚拟内存关闭,可以根据实际内存设的小一点,这是来自微软官方的建议。
theone99 2010-01-04
  • 打赏
  • 举报
回复
运行 MSCONFIG 看看启动加载。一般留下杀软和CTFMON.

6,850

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧