|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
走出虚拟记忆体禁用的几个误区
+ j& O: }, e; h* T) v# G最近大家都经常谈论的话题,就是DDR记忆体的大降价,DDR266从400多元的位置暴跌到200元左右,很多人都用上了512MB甚至1GB的记忆体,于是有一种观点也在部分玩家中流行起来,说是禁用虚拟记忆体、禁止Windows页面档案交换、强行指令资料在记忆体中处理,可以加快资料读写效率,是不是真的这样呢?- d2 y. ?3 _! X: |+ F8 O
: e/ p( h' z; E2 k( R& u
根据套用需要设定8 K8 Y2 N; a. Y' n' x) c
# D( ]& I& K3 L+ r, [ `
笔者认为,这种说法要分情况对待,不能随便就说禁用是好事。5 @5 Z2 L# r! k: ~
9 B& N5 W: a8 @: M 首先,要搞清楚什么是“大记忆体”组态。当初设计Windows使用虚拟记忆体本身是因为物理记忆体很贵,一般都不会超过128MB容量,需要硬碟空间作临时缓冲——也就是说,你应该把套用时需要多少物理记忆体和自己实际拥有的记忆体作一个比较,若果实际拥有的记忆体少于套用峰值,就会遇到麻烦了。
; M8 M" h# b3 [/ H% p, w* L+ l, p. V; H% j- Y. g& ~0 W
一般来说,若果要进行平面大图、3D动画渲染等资料量很大的任务,不应禁用虚拟记忆体;若果经常要列印带大量图片的文件,禁止虚拟记忆体也会让程式出现错误。因为像Word一类软体列印之前要生成缓冲档案,再传输到印表机上,图片尺寸较大、解析度较高时,需要的缓冲区容量也很大,笔者以前帮助广告美工出设计图时,就遇到列印一张图生成将近300MB暂存档的情况。因为Windows和套用程式本身也是需要一定记忆体来执行的,若果你是512MB的组态,禁用了虚拟记忆体,很有可能中途报告虚拟记忆体不足,强行离开造成列印纸张及油墨的浪费。, P9 c( m- S, W4 }9 |$ n3 A& E$ J2 Q
. F% p5 v$ Q8 u' b
所以,必须根据你的任务套用环境,来决定是否禁用虚拟记忆体。即使是把虚拟记忆体大小固定设定,也必须谨慎,否则在执行大型套用软体的时候才出现虚拟记忆体不足的提示,整个系统会因为CPU的占用率极高而变得很慢,此时再改动就没那么方便了。0 _4 m4 O0 G7 C) z' U7 B! [; I
) S8 C" B4 `' j* h1 Z
考虑动作系统的因素( \" \- d. O1 I1 m# g% Y
3 X$ ]9 C4 {1 Y4 R5 s9 k 在不同的动作系统下,虚拟记忆体的设定或禁用也是不同的,不能一概而论。; b p' z4 e' ~5 l+ U; D( h
因为架构问题,Windows 9x/Me对大于256MB的记忆体有先天的不足,大于这个数量的记忆体,Windows 98会出现不稳定及启动速度变慢的情况。若果使用了大记忆体加上禁用虚拟记忆体,不稳定的因素将会进一步增加。Windows 2000/XP可有效管理的记忆体容量为1GB左右,大于这个数目也会出现不稳定的情况,而且视主板BIOS型号及晶片群组效能而不同。8 i1 |! P* p8 a0 [
4 Q4 k B- R6 @% T
另外,Windows本身的设计就是,一旦发现有进度转入不活跃状态,就会把分配给它的记忆体空间映射到交换档案中,尽可能空出物理记忆体给其它活动的执行绪,并不是用完物理记忆体才开始动用交换档案。因为若果等到物理记忆体用完再呼叫,就已经太迟了,在组态较低的机器上势必造成资料传输和处理停滞。所以禁止虚拟记忆体从原则上来讲,最容易引起Windows异常,即使不出现执行不了的故障,也会频繁地提示虚拟记忆体不够,请重新设定云云,让你不胜其烦。% e* k/ u8 ]( a# |6 N+ d1 X2 g
" X1 h% F. L. n3 v# l$ c4 L
如何禁用虚拟记忆体5 K2 @" \- n3 n0 C
' \ v9 Z5 U7 O/ f* B. Q9 H& n( Q 对于拥有很大容量记忆体的朋友,若果真想禁用虚拟记忆体加快执行速度,其实可以用折中的办法“骗”过Windows,就是把物理记忆体划出一部分来虚拟成物理硬碟:
$ q: F& a& L$ t4 j: J1 `' Q5 K
8 P1 O2 H8 ^5 X& }5 M7 U 1.Windows 98
3 R7 L" @* b: g7 q
1 ~ O5 U( }2 r: h4 F, L 可以在Config.sys里加入一句:, L. B$ ]0 [% B, {! o4 x
7 K0 R5 [( m2 V# A( Z# y! ^
DEVICE=C:\WINDOWS\RAMDRIVE.SYS 23000 /E(请根据自己的Windows所在分区适当设定)& k. M4 P( [! d2 k% L
- a1 W7 F, Z: X5 ^6 _: m 这句话就是利用记忆体由Ramdrive.sys虚拟出一个分区,其中23000是你希望使用多少物理记忆体,单位是KB,若果你有1GB,可以把这个数字设到300000到500000左右,即300~500MB,然后把虚拟记忆体设定到该虚拟出的分区上,程式就完全在物理记忆体中执行了。2 O e6 G* X/ W, f8 k
8 P/ Q3 ^+ h" q) G5 \3 e 2.Windows 2000/XP1 j- p I$ n: y! v! R) B3 n
8 ^1 G* M* ]# I& a* J F# u
必须依靠第三方的工具软体来虚拟物理硬碟,然后再把Pagefile.sys页面档案设到该虚拟盘上,实现同样效果;或是可在System.ini中的“[386enh]”底部加入一句,ConservativeSwapfileUsage=1,让Windows优先使用物理记忆体,尽量不要强行直接禁用虚拟记忆体交换档案。
+ X9 R, z' S j9 v& [3 Z; c' I. d: m9 g( B/ V
结论
5 o, d, C" d+ i+ b% T' q. y4 F. S7 j5 \* W; d& L
笔者认为,禁用虚拟记忆体达到的加速效果很有限,加上一般Windows的预设设定比较适当,尤其是Windows 2000/XP预设设定对虚拟记忆体的管理很好,尽量不要随意变更,否则出了问题你很难判断和分析。
& M% x4 T0 p3 P, T' C$ S# q
5 G: n7 g( m7 ?% c( H) ]4 C0 D 题外话:有关记忆体的一些故障分析" X: y8 g, ~% _- Q
" [0 W3 v/ Q; y. b; _
有时,Windows出现一些和记忆体有关的故障提示,不一定是和记忆体有关;而一些看似和记忆体无关的故障,却真是记忆体引起的,很有隐蔽性。: s( X6 p6 b$ \
: z# G, u- N% M5 v( ?" ]7 { 比如:你用PQ分区大师之类的工具改过分区簇的大小,当簇小于预设值时,Windows 98执行磁碟扫瞄就可能会报记忆体不足,而在Windows 2000和Windows XP下则标准——也就是说,这跟记忆体根本没关系。
8 x8 Y' s" Z" X4 ^) ~9 O5 c' I9 @; Q( p# e# }: R
再比如:有时开机进入Windows时,系统会提示你注册表错误,是否还原,当你选还原后,再次重启,还是同一个提示,这种故障,却多半是记忆体条或散热方面出了问题引起的,需要更换记忆体或是风扇了。
4 f# y+ N9 O9 G8 V5 Z
- @- |! y2 P6 @ 所以,Windows的提示有时会误导使用者,若果反覆出现同一种故障,按其提示解决不了,应考虑Windows误报的可能性。 6 S! _$ X) }/ n( a
6 m7 s2 N9 @ w" i
|
|
|