QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 11637|回复: 1
打印 上一主题 下一主题

走出虚拟内存禁用的误区

[复制链接]
字体大小: 正常 放大
韩冰        

823

主题

3

听众

4048

积分

我的地盘我做主

该用户从未签到

发帖功臣 元老勋章

跳转到指定楼层
1#
发表于 2004-10-10 11:13 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
走出虚拟内存禁用的误区 + V. |5 [5 D2 [0 @广西 苏悦) N$ s* d9 e' @: ]

  最近大家都经常谈论的话题,就是DDR内存的大降价,DDR266从400多元的位置暴跌到200元左右,很多人都用上了512MB甚至1GB的内存,于是有一种观点也在部分玩家中流行起来,说是禁用虚拟内存、禁止Windows页面文件交换、强行命令数据在内存中处理,可以加快数据读写效率,是不是真的这样呢?

0 e$ g8 D6 P5 b* ^ 根据应用需要设置

; j5 \' E' R" G6 W! [# X5 N: m

  笔者认为,这种说法要分情况对待,不能随便就说禁用是好事。) ?2 P/ l& q g' q2 i   首先,要搞清楚什么是“大内存”配置。当初设计Windows使用虚拟内存本身是因为物理内存很贵,一般都不会超过128MB容量,需要硬盘空间作临时缓冲——也就是说,你应该把应用时需要多少物理内存和自己实际拥有的内存作一个比较,如果实际拥有的内存少于应用峰值,就会遇到麻烦了。% G; w/ `7 E$ t8 K6 d! Q( e9 @( `   一般来说,如果要进行平面大图、3D动画渲染等数据量很大的任务,不应禁用虚拟内存;如果经常要打印带大量图片的文档,禁止虚拟内存也会让程序出现错误。因为像Word一类软件打印之前要生成缓冲文件,再传输到打印机上,图片尺寸较大、分辨率较高时,需要的缓冲区容量也很大,笔者以前帮助广告美工出设计图时,就遇到打印一张图生成将近300MB临时文件的情况。因为Windows和应用程序本身也是需要一定内存来运行的,如果你是512MB的配置,禁用了虚拟内存,很有可能中途报告虚拟内存不足,强行退出造成打印纸张及油墨的浪费。 & {$ ~3 B' h( R) y7 L  所以,必须根据你的任务应用环境,来决定是否禁用虚拟内存。即使是把虚拟内存大小固定设置,也必须谨慎,否则在运行大型应用软件的时候才出现虚拟内存不足的提示,整个系统会因为CPU的占用率极高而变得很慢,此时再改动就没那么方便了。

C# L1 F" U+ F5 H- v) w' Q( e& p考虑操作系统的因素

4 F- `- k; a8 x4 _4 C

  在不同的操作系统下,虚拟内存的设置或禁用也是不同的,不能一概而论。: y- Y6 |" R* L% P0 A   因为架构问题,Windows 9x/Me对大于256MB的内存有先天的不足,大于这个数量的内存,Windows 98会出现不稳定及启动速度变慢的情况。如果使用了大内存加上禁用虚拟内存,不稳定的因素将会进一步增加。Windows 2000/XP可有效管理的内存容量为1GB左右,大于这个数目也会出现不稳定的情况,而且视主板BIOS型号及芯片组性能而不同。 4 e$ a# |- R" T6 O2 z8 |  另外,Windows本身的设计就是,一旦发现有进程转入不活跃状态,就会把分配给它的内存空间映射到交换文件中,尽可能空出物理内存给其它活动的线程,并不是用完物理内存才开始动用交换文件。因为如果等到物理内存用完再调用,就已经太迟了,在配置较低的机器上势必造成数据传输和处理停滞。所以禁止虚拟内存从原则上来讲,最容易引起Windows异常,即使不出现运行不了的故障,也会频繁地提示虚拟内存不够,请重新设置云云,让你不胜其烦。

$ v0 U5 \; {# D4 ^! [' v' ^; B 如何禁用虚拟内存

9 L) W3 g$ ^9 U9 N; q   对于拥有很大容量内存的朋友,如果真想禁用虚拟内存加快运行速度,其实可以用折中的办法“骗”过Windows,就是把物理内存划出一部分来虚拟成物理硬盘:& ] n& ^1 p* W1 \% Z   1.Windows 98 n# R- _( h6 c2 e  可以在Config.sys里加入一句: 7 Q3 a" e' t6 ?) J2 S! @% \  DEVICE=C:\WINDOWS\RAMDRIVE.SYS 23000 /E(请根据自己的Windows所在分区适当设置)+ h" R U5 V2 f: b: C! ^, n9 G   这句话就是利用内存由Ramdrive.sys虚拟出一个分区,其中23000是你希望使用多少物理内存,单位是KB,如果你有1GB,可以把这个数字设到300000到500000左右,即300~500MB,然后把虚拟内存设置到该虚拟出的分区上,程序就完全在物理内存中运行了。( j7 z: e3 W; _& V* V+ V   2.Windows 2000/XP $ G" w, [+ t& C  必须依靠第三方的工具软件来虚拟物理硬盘,然后再把Pagefile.sys页面文件设到该虚拟盘上,实现同样效果;或者可在System.ini中的“[386enh]”底部加入一句,ConservativeSwapfileUsage=1,让Windows优先使用物理内存,尽量不要强行直接禁用虚拟内存交换文件。

8 `9 x# W+ J C$ A% u结论

, D" F9 T1 y4 t5 L2 _* C! a- ~% M   笔者认为,禁用虚拟内存达到的加速效果很有限,加上一般Windows的默认设置比较适当,尤其是Windows 2000/XP默认设置对虚拟内存的管理很好,尽量不要随意更改,否则出了问题你很难判断和分析。( m2 S6 ~. [% N) I' _2 Y1 V O% F. {# Q# s+ |# g# t   题外话:有关内存的一些故障分析 $ K+ M2 P3 y% ^& f  有时,Windows出现一些和内存有关的故障提示,不一定是和内存有关;而一些看似和内存无关的故障,却真是内存引起的,很有隐蔽性。. R7 h* z5 R( B1 @6 c   比如:你用PQ分区大师之类的工具改过分区簇的大小,当簇小于默认值时,Windows 98运行磁盘扫描就可能会报内存不足,而在Windows 2000和Windows XP下则正常——也就是说,这跟内存根本没关系。( F6 t" K: n3 L/ \7 m2 \   再比如:有时开机进入Windows时,系统会提示你注册表错误,是否恢复,当你选恢复后,再次重启,还是同一个提示,这种故障,却多半是内存条或散热方面出了问题引起的,需要更换内存或是风扇了。 9 `2 F1 g9 j( n  所以,Windows的提示有时会误导用户,如果反复出现同一种故障,按其提示解决不了,应考虑Windows误报的可能性。

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
ilikenba 实名认证       

1万

主题

49

听众

2万

积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-18 21:02 , Processed in 0.457009 second(s), 62 queries .

    回顶部