下沙论坛

标题: Windows系统内存的问题解决 [打印本页]

作者: 秋风舞落叶    时间: 2009-4-20 08:32
标题: Windows系统内存的问题解决
A、彻底解决Windows系统内存不足的问题( q# H6 q4 u9 j
. k$ e$ Q& r' D/ _' R
 如今,内存越来越便宜,许多朋友为自己的PC配备了高容量的内存,以期得到理想的系统性能,1G、2G甚至更多内存的PC已经很常见了。但是,出乎许多朋友意料的是,即使Windows系统,不仅仅Windows Vista也包括Windows 2000/XP/2003,具有2GB甚至更多的内存,有时也会遇到Windows Vista提示“内存不足”警告的情况,或者虽无提示但程序窗口无法打开,或程序窗口虽然打开但却不完整如缺少菜单、按钮等,而事实上,这时仍有相当部分的物理内存闲置,颇令许多朋友困扰,难道为Windows配备这么大的内存便是一种浪费么?7 D8 F% \' I% [) K$ w3 D
0 v! x) T3 f1 E7 O
  在当Windows Vista提示“内存不足”,我们介绍过出现这种情况多是因为默认的Desktop Heap区间被占满所致,并给出将desktop heap区大小从默认的3072KB提高到需要数值的办法。不过,许多战友依步骤进行调整后发现,仍然没有从根本上解决这一问题,上述的故障仍然时不时地再次出现,那么,问题出在哪儿?( V% \  B# {! M4 X# J( s6 B; S
: b* {- q4 B) F
  其实,在Windows NT 家族系统中,除了desktop heap区的限制外,默认的用户句柄(User Handle)与GDI 句柄(GDI Handle)限制同样是引发上述故障的原因之一,特别是考虑到之前系统物理内存普遍较少的客观情况,默认的用户句柄与GDI 句柄数量也成为Windows 阻止同时打开更多程序/窗口的另一个主要原因。
2 }& P$ t$ _9 |& i, e- H. D
6 k  {  ^$ J& j4 L$ u: [2 G+ X  解决方案很简单,那便是将默认的用户句柄与GDI 句柄数量修改为较大的数值。
9 g, R0 G/ M& D! N: e
1 I+ i( p# J8 o) i7 p! _2 G7 m  1 |; y* j# `. |( C7 b! [0 G" }
/ z" Y  w  s( F+ A: q3 T
提高Windows默认的默认的用户句柄与GDI句柄数量4 G7 Q& u  ?# J; c+ ?) k

1 t9 w, c/ k* }. Q  在Windows Vista开始菜单的搜索框中输入“regedit”,回车;, Q8 w3 C4 F5 |; p' e3 n) D

0 |# \1 f! Q  {" l7 c8 w4 i  注册表编辑将会触发UAC而弹出提示窗口,点击确认继续;
0 U* `# Y) b' E) s. A5 H3 B7 ^, R' @7 g6 a/ G7 l1 u% s/ e$ ?( Q
  按当Windows Vista提示“内存不足”介绍的方法,首先将desktop heap区的大小从默认的3072KB提高,检查问题是否解决。如没有解决,再尝试以下的步骤——
. S/ N  o% K' A  \7 x( A$ E
4 r) O7 ]7 ?; \+ P  找到如下注册表分支:
4 B8 h, O4 O7 Y0 g  j
' \3 W- R& P6 n+ Q$ H! I6 ]& ?- p/ Y  HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Windows
; z0 Z2 D7 @! L0 T8 F
) Y% j/ d6 P' _* |1 [2 e* i: s! E& E  在右侧窗格中可以看到名为“GDIProcessHandleQuota”与“USERProcessHandleQuota”的注册表项;
# I: {5 h6 i! S) r! R; F7 S: h' s
1 Z7 k) S: {2 L: K9 A. |. `  GDIProcessHandleQuota项设置GDI句柄数量,默认值为2710(16进制)/10000(10进制),该值的允许范围为 256 ~ 16384 ,将其调整为大于默认的10000的值。如果您的系统配置了2G或更多内容,不妨将其设置为允许的最大值 16384(10进制);7 ^' l* }1 [* q5 T" o

5 e! ~  C8 `' h! n, q  USERProcessHandleQuota项设置用户句柄数量,默认值同样为2710(16进制)/10000(10进制),该值的允许范围为 200 ~ 18000 ,将其调整为更多的数值。同样地,对于具有2GB或更多物理内存的系统,不妨将用户句柄数直接设置为上限 18000(10进制);
; r9 k: _4 L( a9 V: e3 K* Q# L! L: X/ u* H  I/ s
  需要强调的是,修改“GDIProcessHandleQuota”与“USERProcessHandleQuota”值时,不要超过其接受的上限,不然,将导致Windows 无法工作或运行不稳定。另一方面,即使您的调整其超过其允许的上限,如果发现修改后Windows出现不稳定的症状,便需要将相应的数值调低些,或者恢复默认值。9 k( D# B4 ^: _) l' ^

# ^( T3 E1 c6 Y  s/ q  E. w  注:本技巧适用于Windows 2000、 Windows XP、 Windows Server 2003、Windows Vista;- c0 G+ I  {' x

) _. }) m2 I' a- r3 x  修改注册表存在风险,请谨慎操作,最好在修改前备份注册表,以当系统故障时恢复。
2 y. V  b$ K2 S, E. }( q8 C" E# v0 n( _/ e4 c
B、怎样判断内存兼容性
: U2 F( \4 M0 R3 |
* R+ c: ^7 R0 n3 {0 c0 S" w2 X# q! u内存出现兼容性问题在电脑故障中所占的比率是比较高的,有的严重一些,直接蓝屏无法启动;有的比较隐蔽一些,用了一段时间才会发现。而且大多数内存兼容性问题比较隐蔽,再加上Windows操作系统本身也并不稳定,还是会出现死机等现象;所以会影响大部分DIYer对故障原因的判断。那么如何去判断隐蔽性的内存兼容性问题呢?
4 r3 g, F" _. B. M' J6 M5 @  W: F+ v/ u5 A, N7 y
一、内存出现兼容性问题的故障现象
  k: e8 T. I7 v0 Y0 F' t8 S4 E. Z3 w- b1 B8 M
内存出现兼容问题给DIYer留下最深的印象恐怕就是蓝屏和死机。其实,由内存引起的故障远远不止这一些,下面在下稍微地总结一下。 + P  M( L6 l! ]

9 {% @" H) D6 T症状1、直接无法启机,并有报警声。
6 ^# Y1 f# s3 k6 c' j
9 U/ a7 }* _; k7 U1 ^( J7 N1 |! [) d4 |症状2、直接蓝屏,出现内存读写错误的提示。 : c+ D$ ]1 c* c+ T- [
. X8 `. \: u8 U: _1 K4 Z& K
症状3、安装操作系统过程中蓝屏,并出现内存读写错误的提示。 ( p) k, F) T% I; j% {* X

1 i- S" J7 j/ T; ]" d5 |症状4、安装操作系统过程提示某些文件不可复制,但敲击enter后又可以继续进行,反复出现,就和光驱或者光盘出现问题的症状一样。 ; b% @6 c% I: K& L7 D
0 c! `$ k- B0 |+ v4 L" [
症状5、操作系统使用过程中,蓝屏死机。 8 u, K+ |2 w7 p) K9 D% X$ N

( b( F4 c2 N7 r9 o- l症状6、电脑无故重启,而且不是很规律;但有可能只有当你运行某些程序的时候出现的概率才大一些。 ( J4 _* b" A0 Z8 c" @+ T1 M9 j
3 e# t( L7 K) N1 V
上面这些现象,内存出现兼容性问题后都会出现。但并不代表出现这些现象就一定是内存出现了兼容性问题,但也可以作为初期的一个考虑方法。
4 j# k3 A' \0 N# C/ N) ^
$ o; X+ f( p' @: D0 A( {二、判断内存出现兼容性问题 , P) E) n' X* _3 q' Y3 o( y1 p" b
, _3 k. a  d+ ^6 j, A$ y: o# Q: p
如何判断内存出现兼容性问题呢?通常用软件进行测试是最有效的说明。以前我常用memtest、memtest86+、StressPrime 2004(简称SP2004)这三个软件,通过三四个小时的测试后,可以认为系统不存在内存兼容性问题了。
6 s9 @6 a0 p' J' k$ C2 Q" _# t- Y
$ ^5 g1 p; q; q2 G$ g2 l- ]- q1、Memtest 3 s  l" I' k* c+ V3 j' t

1 k& o" i3 |2 s* OMemTest是少见的内存检测工具,它不但可以彻底的检测出内存的稳定度,还可同时测试记忆的储存与检索资料的能力,让你可以确实掌控到目前你机器上正在使用的内存到底可不可信赖。这款软件最新的版本是3.7,有汉化版(
http://www.skycn.com/soft/13179.html),可以在Window下直接运行(不用安装,绿色软件),而且有免费的版本可以使用,唯一的不方便就是在使用伊始会出现提示对话框。 1 x* X8 c: b: ~) k3 O* F$ l8 @; D7 {

0 o# p$ r. M% [# d( k使用方法:9 t1 l% J6 F' R3 T+ u

5 Z& a/ U. R" k2 q" }9 z: \* [  jStep1:运行memtest软件。然后会出现一个提示框,单击“确定”。
5 z' @! P" h5 b  \3 w
9 r% d4 W( ]4 j1 F0 e* ]# }Step2:点击“Start Testing”,剩下的工作就完全交给这个软件了,一般至少需要测试到200%。
& G' W: b9 j5 U* Q) F9 |8 y# X' |0 W8 ~& M* L- D! W
总结:这个软件非常小巧,便于拷贝,而且测试过程很苛刻;建议装机前用此款软件跑上几圈。另外,在使用这款软件的时候,最好将无关的程序关掉,因为这款软件只能测试剩余(就是没有参与系统工作的)的内存;而且如果你有超过1G的内存,需要同时运行两个memtest,因为免费的版本不支持1G以上的内存测试。同样这个软件也有一些bug,比较著名的就是软件对温度敏感,当PC温度过高时,也容易出现错误;另外,还比较容易作弊,所以网络中的memtest测试结果不要轻易相信。
; X" A0 e& d( p( I( y
+ o  R" ~% q% v4 W1 l. H: K9 {2、Memtest86+
- ~3 M4 H8 X) m! w
/ g) ~# H; ?: Q+ XMemtest86+从Memtest86发展而来,这两个软件功能等各方面都非常相似,但Memtest86+的更新速度较快。使用这两个软件检测内存,需要制作启动盘用于启动电脑,然后再进线内存检测。可以在其官方网站(
http://www.memtest.org/)中下载到三个版本:光盘启动版、软盘启动版、USB闪存启动版。其中后两种制作对于初学者来说有些麻烦,这里笔者建议大家采用光盘启动版。这个软件同样很小巧,目前最新的版本是1.70版。虽然制作过程有点繁琐,但测试更为严格。推荐那些对系统要求苛刻而且喜欢超频的用户的使用。 % s% q7 ]: F1 R$ w8 m
5 r9 I/ M, f9 H, e; T
使用方法:
3 \2 w( S0 ?" I: Z7 ]  }
# `. p+ r6 i% R1 E! p- S" X  M& MStep1:下载光盘启动版后,用刻录机刻录镜像文件。 , S4 H0 S' l3 D/ v6 \! y

2 {/ W+ l$ p( c, C" L$ I2 ~Step2:制作启动盘之后用其启动电脑,软件将显示当前系统的CPU型号、频率、缓存,以及系统物理内存容量与速度。并开始自动检测内存,而且是无限循环的测试,一直到手动停止测试为止。默认设置之下软件将使用标准测试方式,通常测试一次需时约1小时,完全测试方式则需要好几个小时,因而,建议在需要检测之时,选择在晚上关机或其他准备长时间不使用电脑的时候,给软件充分的时间进行测试,力求检测结果更准确。如果需要使用完全测试方式,可以按下键盘上的“C”键,然后通过设置菜单选择“All Test”完全测试模式。 - @- u* }  R. w3 }; [/ Z
% \  b: J  g! C# Y7 q; M5 g
3、StressPrime 2004
% q3 B( Q# K# y) o( C: H! b4 J& ~! W3 m( Y! q# d1 j
Stress Prime 2004(SP2004)是一位国外电脑高手Johnny Lee做的测试计算机CPU稳定性的软件。软件基于Prime95(版本:23.8.1)制作而成,测试的理论、效果和Prime95一样,但操作界面比Prime95方便且人性化。另外可以配合MBM5使用,可以在测试中直接通过SP2000的调取CPU和北桥芯片的温度。
: @8 x9 y7 U/ R8 m. t: t8 D
& P& S  B* Z7 G/ I这个软件也十分小巧,最新版本为0.40,汉化版地址(
http://www.onlinedown.net/soft/37334.htm),使用简单。可选择三种模式:少量FFTs、适当大量FFTs、混合。第一种模式着重测试CPU的稳定性,第二种模式着重测试内存的稳定性,第三种模式着重测试CPU和内存的稳定性。在运行程序的时候,一般采用第一种模式时可继续在系统上同时运行其它程序,比如浏览网页、观看视频、游戏等;而采用其他的模式最好不要再运行其他的软件。最后说明一点,本程序需要手动停止,除非软件出错(即系统通不过测试) 。 * k/ a" p& L# `) g" n
% E1 _! {3 y4 o+ Y
使用方法:' Z, m, s% h  u: p! L! a
/ @6 U+ D" I/ [# H& `
Step1:这个软件是绿色的,下载完成后,解压缩,直接运行“SP2004”。 , I% U/ P# f" N- M
4 o$ [! t. Q) g1 S' p9 m
Step2: 在测试中选择“混合(着重CPU和内存)”,然后单击“开始”,一般需要测试3个小时以上。 ! @0 ]& L) D) p  [' t8 m
& E& r' l2 J  V4 i& N9 I
一般通过这三个软件的测试后,整套配置不会存在内存兼容性问题了。这三个软件有个共同的特点就是都需要手动停止(可无限的进行测试),如果自行停止了说明软件出错,也就说存在兼容性隐患。其实,这种测试的模式不但可以检测系统稳定性,也可以作为超频成功与否的根据。相对而言,Memtest86+对内存的测试更为准确一些或者更为偏向;其他的两款软件可以作为辅助使用。最后需要注意两点: ' W& m* L; Y1 i- D
, [% M8 B8 g5 _+ A" N
1、如果内存的总容量超过1G,在使用Memtest测试的时候,需要开启两个程序,而且在测试过程中最好不要运行其他的软件。 / p, q" A6 {' L$ @7 U. q# R

. z( @! C; Y; o2、对于双核的测试,如果需要SP2004的话,最好开启两个程序。否则对机器的测试,目前来看不是最苛刻的。一般情况下选择最苛刻的模式可以减少测试的时间。% j) ?1 N2 T& \7 E& t: A
/ w! b; b5 {1 L' \, l* W* Y3 r
C、彻底解决Windows系统读写错误
& k3 X$ g0 X: t. p: r3 p
! o4 w& P( x& w1 L, H6 M计算机系统中运行一些容量较大的程序或者游戏时,系统常常会自动弹出“xx内存不能为read或written”的错误提示,遇到这种故障信息时,我们该如何才能将它有效排除,同时确保下次运行容量较大的程序或者游戏时,系统不会再次出现系统内存读写错误呢?事实上,当我们不幸遭遇上面的故障信息时,我们可以尝试按照如下步骤进行依次排查。
* [0 g0 w$ M: ?+ {- ~4 \3 E
% C; B/ f( L( ^" K  移除无效插件程序
2 x# c- a4 B5 S7 ~! k
6 N' i$ ^4 v' f, u4 a# P" [' \, e  在上网冲浪的过程中,许多插件程序会偷偷地安装到计算机系统中,而不少插件程序往往都有防删除的功能,因此这些插件很容易与其他的应用程序发生冲突,从而间接地引起系统内存读写错误的现象。为了给那些大容量的应用程序或游戏提供一个干净、稳定的工作环境,我们最好定期使用安全防护软件,来查看系统是否被偷偷安装了各种无效的垃圾插件程序,一旦发现的话,那可以直接将它们从系统中及时卸载干净。
8 ^9 A* d7 F5 Y- [/ E, x8 ^1 N9 v8 ^$ Q- k- m
  手工修复系统服务
0 ~, y3 e: v7 C; r) U* F, C* p5 }) X  w  C; v1 ~, m
  与系统内存读写操作有关的Windows Management Instrumentation服务要是发生错误的话,也会导致系统弹出内存读写错误的提示,所以当我们遇到这种错误现象时,可以尝试手工修复一下Windows Management Instrumentation服务,下面就是具体的修复步骤:- f! e6 v7 a" s1 |& o
# Z+ a9 f1 b2 I3 L
  首先,用鼠标右键单击系统桌面中的“我的电脑”图标,从弹出的快捷菜单中执行“管理”命令,打开本地系统的计算机管理窗口,在该窗口的左侧显示区域,依次展开“服务和应用程序”/“服务”选项,在对应“服务”选项所在的右侧显示区域中,找到Windows Management Instrumentation服务,并用鼠标右键单击该服务选项,从弹出的快捷菜单中执行“属性”命令,打开服务属性设置界面;
4 x" {* `0 S% M, [* d8 q0 c5 m. a
  其次在该设置界面的“常规”标签页面中,单击“停止”按钮,将Windows Management Instrumentation服务暂时停止运行。之后,打开计算机系统的资源管理器窗口,在该窗口中依次展开“Windows”、“system32”、“wbem”、“repository”文件夹,然后将“repository”文件夹窗口中的所有文件进行一下备份,备份完成后将该文件夹中的所有内容全部清除掉;" F* O9 ~) ?' Y3 a1 F
) }3 K) r  O/ s- c1 r
  接下来,重新启动一下计算机系统,待系统启动成功后,按前面操作打开Windows Management Instrumentation服务的属性设置界面,单击该界面中的“启动”按钮,相信这么一来Windows Management Instrumentation服务就能正常运行了。
& B/ h$ e$ a9 e, b6 J8 H6 I7 f. q$ J. Q
  修复系统损坏文件8 E4 U7 x5 L5 |' d2 u9 J

+ M; z  Y% p# U" J# P% D  如果计算机系统不小心感染了病毒或者发生了误删除操作,那么与系统内存读写操作有关的系统文件很可能受到损坏,而这些系统文件一旦受到损坏的话,那么我们就很容易遭遇内存读写故障提示了。所以,我们一旦碰到内存读写错误的提示时,不妨按照如下步骤修复一下系统,看看系统是否存在损坏的文件:
2 f. w# _4 ]9 i9 e: o7 {+ k! E+ U4 `' \
  首先使用最新版本的杀毒软件,来对计算机系统进行彻底地病毒查杀操作,因为计算机系统一旦感染了病毒而不进行清除的话,我们即使修复了系统文件,病毒仍然有可能会继续破坏系统文件,所以及时使用杀毒软件来将计算机中的病毒全部清除干净,可以确保系统文件不会继续受到病毒的威胁。
2 O# H% r' D2 d! w/ F" u! N- o  k/ T) y: }3 O- x
  其次使用系统自带的“sfc”命令,来尝试将受到损坏的系统文件修复到正常状态。在修复受损系统文件时,只要在运行中输入“CMD”,打开“命令提示符”窗口,在其中输入字符串命令“sfc/scannow”,单击回车键后,该命令程序就会对系统每个角落处的系统文件进行搜索扫描,一旦发现系统文件的版本不正确或者系统文件已经损坏的话,它就能自动弹出提示界面,要求我们插入Windows系统的安装光盘,以便从中提取正常的系统文件来替代不正常的系统文件,从而达到修复系统文件的目的。要是系统修复操作成功的话,相信我们重新启动计算机系统时,就不会看到有什么不正常的现象了。/ B3 ^- E& M' {5 a
6 Q( K7 W! C4 K) s. S' x
  及时释放系统内存  [, Z5 z3 T. ], }

- t0 Q, F& Z+ }, c& K  我们知道,在运行一些容量较大的程序或者游戏时,需要消耗相当的系统内存资源,要是此时内存空间不够时,那么系统内存读写错误的故障提示很有可能就会发生。为了有效避免这种错误提示,我们最好在运行容量较大的程序或者游戏之前,应该先将计算机系统重新启动一下,这样能够将系统内存空间充分释放出来;如果计算机内存空间本身就比较小的话,那么我们建议各位最好及时升级内存,以便拓展内存的有效使用空间,以防止由于系统内存不足而造成系统内存读写错误的发生。/ Q+ k  O/ O8 w4 C% D- F
) E) U; G$ p$ m" L: W
  当然,在系统自身内存空间不足的情况下,我们应该先将那些随机启动的杀毒软件以及相关即时监控的程序暂时关闭掉,之后再尝试运行容量较大的应用程序或者网络游戏,因为杀毒软件及相关监控程序会在一定程度上消耗一些系统内存资源,将它们关闭可以节省不小的内存空间,从而能够有效避免内存读写错误现象的发生。当然,值得注意的是,我们在运行完大容量的程序或游戏之后,还必须记得及时将相关程序的监控功能全部打开。
' U# o8 J0 ?+ @, x





欢迎光临 下沙论坛 (http://bbs.xiasha.cn/) Powered by Discuz! X3.3