从程序员的角度看"大内存时代是否可以关闭虚拟内存"

saiyaman5 2012-02-03 12:58:57
加精
现在内存廉价,PC都上8G/16G/32G内存
这意味着是否可以关闭虚拟内存?
网上很多人都以自身体验来证明可以关闭与否
那从我们程序员的角度来看如何?
在日常应用的情况下..在专业应该的情况下...
...全文
12733 181 打赏 收藏 转发到动态 举报
写回复
用AI写文章
181 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang631931749 2012-02-21
  • 打赏
  • 举报
回复
有待时间的检验
hg2980986 2012-02-21
  • 打赏
  • 举报
回复
feixiang992 2012-02-20
  • 打赏
  • 举报
回复
如果RAM够,分配内存时只在页面文件预留空间,并不读写硬盘
noodle123 2012-02-20
  • 打赏
  • 举报
回复
还是开着吧
saiyaman5 2012-02-20
  • 打赏
  • 举报
回复
[Quote=引用 165 楼 kevin_qing 的回复:]

看来很多同学对物理内存,可用内存,虚拟内存,地址空间这些概念区别都不太明白啊。

物理内存,想来应该没甚异议,机器插了多少内存就是多少。

可用内存,一般来说小于物理内存。除去像板载gpu保留的内存之后的空间,os控制的就是这个。

视os/bios不同,可用内存最大值有限制,像xp-32最大值在3g-3.5g。 也就是说,你用32位xp,插超过3g内存基本上就没有意义了

对于……
[/Quote]

学习了,可惜结帖太早,没分给了 ^_^ ~~~~
lst5511597 2012-02-20
  • 打赏
  • 举报
回复
必须要开,XP会给提示
kernel_src 2012-02-20
  • 打赏
  • 举报
回复
我不知道“从程序员角度看”是指那个角度,因为我不是程序员。但是我大概知道一点os为什么要有那么多的存储器。比如cpu里面的寄存器,内存,缓存,硬盘。之所以要有这么多的存储器,是由于存储器的存取速度和价格两个因素造成的。简单的讲,速度越快的价格越贵。所以cpu里面的存储器往往很小。为了满足大容量存储的需要,我们需要存取速度很慢而且便宜的硬盘,为了满足用户或者说cpu的计算速度,才设计了多级概率命中算法,将可能用到的文件按级别放在各个存储器的中,也就是说多级存储结构其实是为实现程序的快速运行而设计的,是时间与空间相互妥协的结果。
虚拟内存也是为了多级概率命中算法设计而存在的。
因此,是不是使用虚拟内存,要看运行的程序大小和用户空间的关系来确定。
1、对于小程序,可以直接全部调用到内存里的,不用缓存速度不会受影响。
2、对于大程序类似ps这样,会产生大量数据的,就必须有虚拟内存,当然,人家ps自己可以设定。
3、对于程序切换频繁的用户,如果所有的程序都很小,其总和内存放的下,就不需要虚拟内存,会获得很好的切换和使用体验。如果被切换的程序很大,那我劝您还是老老实实的设定虚拟内存吧。否则硬盘响个不停,程序失去响应,就只能干着急了。
木木彡bbbbbb 2012-02-20
  • 打赏
  • 举报
回复
足够了,不加
seaviewbro 2012-02-20
  • 打赏
  • 举报
回复
关闭了虚拟内存,visualstudio、photoshop可能出现莫名其妙的问题,系统整体速度感觉快不了。要快的话直接上固体硬盘吧
xiaoshahai 2012-02-19
  • 打赏
  • 举报
回复
学习一下
a124579945 2012-02-19
  • 打赏
  • 举报
回复
谢谢楼主,强烈支持
redboy999 2012-02-19
  • 打赏
  • 举报
回复
以前优化的时候有谈到虚拟内存还是给一点,因为有的软件运行可能需要,但是目前来说我关闭的使用开发环境也很正常
ly040116 2012-02-19
  • 打赏
  • 举报
回复
好像有些游戏要用吧
glyc 2012-02-18
  • 打赏
  • 举报
回复
大内存的机器应该考虑用64位Windows或者Windows Server 2003/2008企业版。这些系统最大可以支持48G内存。
sslabcsss 2012-02-18
  • 打赏
  • 举报
回复
如果内存够大,OS对大内存足够支持,那文件缓存就用的不多,不过一般OS还是会启用磁盘缓存的吧
超级大笨狼 2012-02-17
  • 打赏
  • 举报
回复
我们服务器都是96G,192G内存.
you_name 2012-02-17
  • 打赏
  • 举报
回复
我觉得,开着好,读写硬盘时先缓存在这里以加快与内存的数据交换
cdnvzi 2012-02-17
  • 打赏
  • 举报
回复
看了这么多回复,感觉有点用处
Kevin_qing 2012-02-17
  • 打赏
  • 举报
回复
看来很多同学对物理内存,可用内存,虚拟内存,地址空间这些概念区别都不太明白啊。

物理内存,想来应该没甚异议,机器插了多少内存就是多少。

可用内存,一般来说小于物理内存。除去像板载gpu保留的内存之后的空间,os控制的就是这个。

视os/bios不同,可用内存最大值有限制,像xp-32最大值在3g-3.5g。 也就是说,你用32位xp,插超过3g内存基本上就没有意义了

对于应用程序可见的是地址空间。 32 位下,应用程序可见空间均为0-3fffffff (也就是4g),而地址空间会经过内存映射,映射到虚拟内存。这个过程对于应用程序透明。

需要注意的是,虽然对于每个程序来说,地址都有4g,但是并不是说这整个4g都是可以访问的。有可能一段地址根本没有映射任何虚拟内存,那么访问这个地址就会造成非法操作。


同样,各个不同进程可以映射到同一块虚拟内存上面. 像xp 2g以上地址就全部映射的系统模块,只是进程不可访问。(通过3gb开关可以时系统模块加载到3g以上地址去),这个技术可以使不同程序共享同一段虚拟内存,减少实际物理内存的开销。


虚拟内存。实际就是pagefile+物理内存的联合。

比如系统只有2g可用内存的情况下。某个进程提交了1g的内存请求。 那么os会将最近访问很少的内存分页写到磁盘上面,然后对应的物理内存就可以释放出来再次使用了。


而访问虚拟内存时,如果该块没有映射实际物理内存(也就是被交换出去了),则会从pagefile里面加载。



实际上windows不会等到物理内存快耗光的时候才交换,windows会尽量保证比较多的可用内存预留(也许是用于缓存?),这样在很多时候进行的都是不必要的交换。

关掉pagefile可以避免这个情况。

另外,如果查看任务管理器里面的内存提交量,就可以知道是否可以关掉pagefile了。

打开足够多的程序,然后看系统的内存提交,如果还远小于你的可用内存,那么关掉的话会提高系统性能。

万老师 2012-02-17
  • 打赏
  • 举报
回复
突然断电怎么办啊???
加载更多回复(142)

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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