跳转到指定楼层   *输入需要访问的楼层直接跳转

[分享]细说Windows XP虚拟内存优化

ldm123 发布于2004-10-19 00:30 857 次浏览 2 位用户参与讨论   [复制分享主题]
虚拟内存在Windows XP中是非常不起眼的,Windows XP安装时会自动对其进行设置,用户甚至根本不6 M% L9 f. @% c/ ]( b
必理会这个文件。但是虚拟内存作为物理内存的补充和延伸,对Windows XP的稳定运行起着举足轻重的作1 Z9 |6 J$ L* N) o# L
用,如果设置不好,会影响计算机的整体性能。
, \6 o3 ~  L. ?) o& [6 `4 r0 o( `* p2 D
  什么是虚拟内存?) S" @: {* x* ?" C& d) F9 J* b( B

4 W4 |: r5 m% \& Z! }& g) y6 Y+ s+ m  虚拟内存是Windows XP为作为内存使用的一部分硬盘空间。即便物理内存很大,虚拟内存也是必不可
9 k( }9 X; I- A( ~少的。虚拟内存在硬盘上其实就是为一个硕大无朋的文件,文件名是PageFile.Sys,通常状态下是看不到
5 _4 n3 c( i0 K( w的。必须关闭资源管理器对系统文件的保护功能才能看到这个文件。虚拟内存有时候也被称为是“页面文
* z% H$ c  Q, ?+ J. v件”就是从这个文件的文件名中来的。
1 A& w7 c. v/ m, x
4 a& V0 j0 S9 f0 ^$ @+ g  设置硬盘  W" R7 X& n3 p2 p- E

, W2 k: p6 C3 T: ?  优化虚拟内存,为什么要进行硬盘设置?这是因为虚拟内存文件(也就是常说的页面文件)存放在硬# Z. k  L5 V) p& E1 r7 ?
盘上,提高硬盘性能也可以在一定程度上提高内存的性能。
. x, J+ f7 V3 Z& x3 `0 d) `6 h
3 E, z9 U: M/ Q- ~( K, T9 Y  1. 启用磁盘写入缓存" b1 l& u2 r+ q3 W# G

( ]& G5 ?! E3 ~; E/ p  在“我的电脑”上单击鼠标右键选择“属性->硬件”,打开设备管理器找到当前正在使用的硬盘,单
# ]0 L' N3 P# D7 j6 M击鼠标右键选择属性。在硬盘属性的的“策略”页中,打开“启用磁盘上的写入缓存”./ `! I4 S$ G4 b: g6 Y4 q
# i: J! S4 e% t3 U! u2 q
  这个选项将会激活硬盘的写入缓存,从而提高硬盘的读写速度。不过要注意一点,这个功能打开后& g& r$ a" m/ m' [
,如果计算机突然断电可能会导致无法挽回的数据丢失。因此最好在有UPS的情况下再打开这个功能。
8 D( q3 b; t: G2 v+ R7 b: `' z$ {当然,如果你平常使用计算机时不要进行什么重要的数据处理工作,没有UPS也无所谓,这个功能不会对
7 m3 S' G3 e3 S' w+ `2 G系统造成太大的损失。
( z1 x  c; h) E. B! `8 L) e3 E' @& m' G1 {
  2. 打开Ultra MDA/ |! o# q' |. m7 t' `
$ _6 Q! b2 m7 }; |3 d+ n) T
  在设备管理其中选择IDE ATA/ATAPI控制器中的“基本/次要IDE控制器”,单击鼠标右键选择“属性9 x: q5 B# m0 B. l3 P/ J
”,打开“高级设置”页。这里最重要的设置项目就是“传输模式”,一般应当选择“DMA(若可用)”# ?/ O) E4 [+ _2 I* w4 `1 G

. B! D8 o0 Y. L* H$ Z  3. 配置恢复选项5 v; X% K; ^# ]+ }( p& O

% ?  j, x" a- o5 f: J0 \" c* u  Windows XP 运行过程中碰到致命错误时会将内存的快照保存为一个文件,以便进行系统调试时使用,对于大多数普通用户而言,这个文件是没有什么用处的,反而会影响虚拟内存的性能。所以应当将其关闭。, u5 p" J. g& }/ X1 z

2 J0 }! b2 {1 x0 P7 n  在“我的电脑”上单击鼠标右键,选择“属性->高级”,在“性能”下面单击“设置”按钮,在
8 M  z  `$ }1 w  r5 N9 G“性能选项”中选择“高级”页。这里有一个“内存使用”选项,如果将其设置为“系统缓存”,
. K5 ?5 P$ h  C1 N1 uWindows XP 将使用约4MB的物理内存作为读写硬盘的缓存,这样就可以大大提高物理内存和虚拟内存之间" @# C# h; A& ~" ?5 K
的数据交换速度。默认情况下,这个选项是关闭的,如果计算机的物理内存比较充足,比如256M或者更多
) v# A  o1 f) ?,最好打开这个选项。但是如果物理内存比较紧张,还是应当保留默认的选项.
1 O6 t$ g  x. p3 p8 X$ P2 S" x; V
  页面文件的设置
0 I; ^1 ]# c0 N. T" u/ p6 K  K
; o. h. m$ d) I) R& J( C  页面文件的大小计算
! J9 I' v! B4 x. f0 W" e8 v. d' i+ F8 w1 S/ R
  对于不同的计算机而言,页面文件的大小是各不相同的。关于页面文件大小的设置,有两个流传甚广
7 c; g, H: s, _5 {9 q) Z% y- t的“公式”,“物理内存X2.5”或者“物理内存X1.5”。这两种计算方法固然简便,但是并不适用于所有
- F: E: Z) x; J的计算机。设置页面文件大小最准确的方法是看看计算机在平常运行中实际使用的页面文件大小。
! z. F& D$ X8 M0 A4 }8 H, D6 n" ?2 @5 v6 @+ h6 Z
  通过Windows XP自带的日志功能可以监视计算机平常使用的页面文件的大小,从而进行最准确的设置
7 `9 G/ s2 J" l& V,具体步骤如下。
5 Q! n% X- M; _$ {; S9 C6 l1 q$ ~! A* r; e. B7 H. [
  一、在“我的电脑”上单击鼠标右键,选择“属性->高级”,单击“性能”下面的“设置”按钮,然
2 J! s: n* A: P# g后选择“高级”页,单击“虚拟内存”下方的“更改”按钮。选择“自定义大小”,并将“起始大小”和9 i  |& M6 ^- h' ]
“最大值”都设置为300M,这只是一个临时性的设置。设置完成后重新启动计算机使设置生效。8 c  S" L- ?: ^0 x3 M; {

2 I$ n+ j8 ^) J. p3 w5 R- T二、进入“控制面板->性能与维护->管理工具”,打开“性能”,展开“性能日志和警告”,选择“计数' |* `! t" @3 i
器日志”。在窗口右侧单击鼠标右键选择“新建日志设置”.
) j" V: U9 ^( H' f
$ _, `' Q( T. f: K1 v  三、随便设置一个日志名称,比如“监视虚拟内存大小”.
  {4 A+ t- P( ]% R8 Z7 _; U+ _5 z5 \' F( T' M. P! ]
9 t. b. @9 i, {4 h) e8 K! Q$ ]4 I
  四、在“常规”页中单击“添加计数器”按钮.+ [4 B; q2 b5 o: J6 C

& y2 g3 r, [" t3 g5 f9 y. g  在“性能对象”中选择“Paging File”,然后选中“从列表选择记数器”下面的“%Usage Peak”,并在右侧“从列表中选择范例”中选择“_Total”。最后单击“添加”和“关闭”按钮.: F1 o# P. m0 s# A! J
  五、别忘了记住“日志文件”页中的日志文件存放位置和文件名,我们后面需要查看这个日志来判断
$ G! H! k1 t( l% d/ SWindows XP平常到底用了多少虚拟内存,在这个例子中,日志文件被存放在D:\Perflog目录下.
' z5 N) ]: k! i- U; Y  r: o8 R, h* S: i& Y% e/ f. h
) C5 D* A9 w; r
另外还要设置“日志文件类型”为“文本文件”,这样便于阅读.
( X& P7 @$ @8 U* E  `* f- \
# ?# ^5 r1 G0 ]这时你可以看到刚才新建的日志条目前面的图标变成了绿色,这表明日志系统已经在监视虚拟内存了
. r( R2 [4 H. U: T0 S* g。如果图标还是红色,你应该单击鼠标右键选择“开始”来启动这个日志。
- u# A( i  e$ v  x3 u$ O过一段时间后打开这个CVS文件,我们可以看到如下内容的条目.% W  @" w( {- X9 m' ]: Z( P

5 n% h/ Q5 h: R. D  这个日志文件记录这一段时间中页面文件的使用情况,注意这里的单位是%,而不是MB。通过简单的
* n$ c  `( d+ s3 P6 T! |计算,我们就可以得到页面文件的最小尺寸,公式是“页面文件尺寸X百分比”。比如这个例子中,虚拟% O3 I7 B3 [2 O$ X  y+ A! g" u" G
内存最大的使用比率是31%,300MBX31%=93MB,这个值就是虚拟内存的最小值(注意,300MB是前面的设置
5 k: f! s5 F$ K  F5 I* V4 J: t的临时值)。& l! y' |; B" n

- R8 }" [  M4 Q1 B( n! w# `  如果物理内存较大,可以考虑将页面文件的“起始大小”和“最大值”设置为相等,等于上一步中计
* H7 c% }. l3 W5 m; n算出来的大小。这样硬盘中不会因为页面文件过渡膨胀产生磁盘碎片,其副作用是由于“最大值”被设置6 P- `' S& e* ^; l! l3 ^' M
的较小,万一偶然出现虚拟内存超支的情况,可能会导致系统崩溃。
3 C' {9 V+ u( K& s3 A( J7 Z
  F3 B1 |/ p# Y! a) h; K' W设置页面文件* s$ L9 ]6 _: g9 ?  d1 w

# X1 V/ l5 C1 N8 i' T0 j* n+ Q  现在回到“虚拟内存”的设置对话框中选择自定义大小并按照上面的计算结果分别设置“初始大小
, @2 h: y2 b7 D8 {* F8 K- }* C$ S! Y: Z”和“最大值”,。这里我们将“初始大小”设置为91M,而将“最大值”设置成了200M,这样
+ Y, e; a6 I+ H/ `8 P* O7 D5 Y) H比较保险。
6 {8 X- _! q; c- O& h
; x: j0 E- E, r1 B 对页面文件进行碎片整理8 P& N9 F0 ]7 `* y
& T  f$ g# w  N6 }* \
  Windows XP运行时需要大量访问页面文件,如果页面文件出现碎片,系统性能将会受到严重影响,
& f5 f: a9 f; [& E+ b+ g0 l而且会缩短硬盘的使用寿命。所以我们很有必要对页面文件定期进行碎片整理。
8 Q: r3 ~  W6 I- T0 b) @& ~% S- D: M' Z: D7 i/ ]
  不过别忘了,页面文件是系统关键文件,Windows XP运行时无法对其进行访问。所以对它进行碎片5 I( G( s( g4 z! m+ L
整理并不是一件容易的事情。我们有两种方案可以选择,一是安装Windows双系统,然后启动另外一个
/ h! j0 W& R3 H* i: }# {Windows对Windows XP所在的分区进行碎片整理。二是使用专门的工具软件,比如
# n# |8 O1 K& D, i) `9 i4 D4 CSystem File Defragmenter,它的下载地址是3 o* d2 [6 I3 f! R" S1 ?+ I
  <a href="http://dl.pconline.com.cn/html/1" target="_blank" ><FONT color=#000000>http://dl.pconline.com.cn/html/1 ... &amp;pn=0&amp;.html</FONT></A>
6 P0 H( u2 M/ ?1 o( N5 N6 B* i  <a href="http://www.sysinternals.com/ntw2k/freeware/pagedefrag.shtml,体积只有41KB。" target="_blank" ><FONT color=#000000>http://www.sysinternals.com/ntw2k/freeware/pagedefrag.shtml,体积只有41KB。</FONT></A>; i% [2 ?! K9 P$ u; S1 D- ]

; q" |5 M3 Y1 Y! j  启动System File Defragmenter后可以看窗口上方列出了可以进行整理的系统文件,其中就包括
5 k& l& r1 G) E; o页面文件.
5 Z9 e+ E! x$ `1 ?7 n) W  在窗口下方选择“下次启动后进行碎片整理”(Defragment at Next Boot)或者“每次启动都进行
; Q% l0 ?# T; t+ R4 \  L碎片整理”(Defragment Every Boot),建议选择后一个选项

已有(2)人评论

heeroyuyz 发表于 2004-10-19 16:18:16 | 显示全部楼层
多谢指教了!!
xuguoyi 发表于 2004-10-20 05:57:34 | 显示全部楼层
<P>唔该晒!</P><P>我自己试下先</P><P><img src="attachments/dvbbs/2004-10/20041019212215169.jpg" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor=\'hand\'; this.alt=\'Click here to open new window\nCTRL+Mouse wheel to zoom in/out\';}" onclick="if(!this.resized) {return true;} else {window.open(\'attachments/dvbbs/2004-10/20041019212215169.jpg\');}" onmousewheel="return imgzoom(this);" alt="" /></P>
您需要登录后才可以回帖 登录 | 註冊

本版积分规则

快速
回复
返回
列表
返回
顶部