ynlizhen 2007-9-24 21:53
加快Windows Vista的关机速度
<P style="TEXT-INDENT: 2em">长期以来,Windows <NOBR oncontextmenu="return false;" onmousemove=kwM(2); id=key2 onmouseover="kwE(event,2, this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">系统</NOBR>缓慢的关机速度一直为人诟病,用户往往需要等待很长时间才能把系统关闭,这一问题在Windows Vista中也没有得到很好的解决,——也许微软将Windows Vista开始菜单中的关机(Power)按钮预设为进入睡眠状态而不是传统意义上的关机,也有这方面的考虑? 毕竟进行睡眠状态的速度是有保障的。——当然,这也与Windows 系统自身的机制有关:Windows在发出关机指令后,需要首先<NOBR oncontextmenu="return false;" onmousemove=kwM(0); id=key0 onmouseover="kwE(event,0, this);" style="COLOR: #6600ff; BORDER-BOTTOM: 0px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">通知</NOBR>已加载有服务、应用程序和进程等,待其逐一关闭后才能进行系统关机或重启的任务,此外,关机前要进行的操作还包括如清理页面文件等,需要对页面文件中的每个页面执行物理写入操作,从理论上讲,这些过程是不可省略的,不然将影响系统的<NOBR oncontextmenu="return false;" onmousemove=kwM(3); id=key3 onmouseover="kwE(event,3, this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">稳定</NOBR>性。</P>
<P style="TEXT-INDENT: 2em">因此,对用户而言,要加快Windows Vista的关机速度,在保证系统稳定性前提下可做的优化不是跳过类似的服务、应用程序或进程的关闭,而是通过尽量缩短关闭前的等待时间。那么,在Windows Vista中,应如何操作呢?</P>
<P style="TEXT-INDENT: 2em">同之前的Windows系统一样,我们可以通过修改注册表调整相应选项来实现。</P>
<P style="TEXT-INDENT: 2em">缩短关闭<NOBR oncontextmenu="return false;" onmousemove=kwM(8); id=key5 onmouseover="kwE(event,8, this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">服务</NOBR>前的等待时间</P>
<P style="TEXT-INDENT: 2em">上面我们提到过,在Windows Vista的关机流程中,系统首先向已加载的服务发出关闭警告,然后等待这些服务自动关闭后给出的关闭信号,如果在设定的等待时间期限后仍未收到关闭信号,Windows系统将相应的服务实施强行中止关闭。</P>
<P style="TEXT-INDENT: 2em">要加快Windows Vista的关机速度,首先可以通过缩短系统默认的关闭服务等待时间来实现。打开注册表<NOBR oncontextmenu="return false;" onmousemove=kwM(1); id=key1 onmouseover="kwE(event,1, this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">编辑</NOBR>器,找到如下注册表项:</P>
<BLOCKQUOTE style="BORDER-RIGHT: #a0a0a0 1px dashed; PADDING-RIGHT: 6px; BORDER-TOP: #a0a0a0 1px dashed; PADDING-LEFT: 6px; BACKGROUND: #ffffff; PADDING-BOTTOM: 6px; MARGIN: 4px; BORDER-LEFT: #a0a0a0 1px dashed; PADDING-TOP: 6px; BORDER-BOTTOM: #a0a0a0 1px dashed">HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control</BLOCKQUOTE>
<P style="TEXT-INDENT: 2em">在右面板中,可以看到一个名为“WaitToKillServiceTimeout”的注册表项,双击以修改它,将它的数值从默认的20000(单位为毫秒)调整到一个较小的数值,如5000 甚至1000等,这样,如果Windows Vista在设置的5秒(5000)或1秒(1000)内没有收到服务关闭信号,系统即会弹出一个警告窗口,通知用户该服务无法中止,并给出强制中止服务或继续等待的选项等待用户选择。</P>
<P style="TEXT-INDENT: 2em">缩短关闭<NOBR oncontextmenu="return false;" onmousemove=kwM(9); id=key6 onmouseover="kwE(event,9, this);" style="COLOR: #6600ff; BORDER-BOTTOM: 0px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">应用</NOBR>程序与进程前的等待时间</P>
<P style="TEXT-INDENT: 2em">与关闭服务前的等待时间类似,Windows Vista在强行关闭应用程序与进程前同样有一段等待该程序或进程自行关闭的时间,只有超过该时限后,Windows 系统才会将其强行中止。</P>
<P style="TEXT-INDENT: 2em">因此,缩短默认关闭应用程序或进行等待时间,同样能够加快Windows Vista的关机<NOBR oncontextmenu="return false;" onmousemove=kwM(10); id=key7 onmouseover="kwE(event,10, this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">速度</NOBR>。</P>
<P style="TEXT-INDENT: 2em">设置方法同上面类似,在注册表中找到如下分支:</P>
<BLOCKQUOTE style="BORDER-RIGHT: #a0a0a0 1px dashed; PADDING-RIGHT: 6px; BORDER-TOP: #a0a0a0 1px dashed; PADDING-LEFT: 6px; BACKGROUND: #ffffff; PADDING-BOTTOM: 6px; MARGIN: 4px; BORDER-LEFT: #a0a0a0 1px dashed; PADDING-TOP: 6px; BORDER-BOTTOM: #a0a0a0 1px dashed">HKEY_CURRENT_USER\Control Panel\Desktop</BLOCKQUOTE>
<P style="TEXT-INDENT: 2em">双击右侧面板中的 “WaitToKillAppTimeout” ,将其值从默认的 20000(单位同样为毫秒)修改为较小的5000或1000,这样,Windows在发出关机指令后如果等待5秒或1秒仍未收到某个应用程序或进行的关闭信号,将弹出相应的警告信号,并询问用户是否强行中止。</P>
<P style="TEXT-INDENT: 2em">在右侧面板中还有一个名为 “HungAppTimeout” 的注册表项,该项对应于系统在用户强行关闭某个进程或应用程序后,如果该对象没有响应时的等待<NOBR oncontextmenu="return false;" onmousemove=kwM(11); id=key8 onmouseover="kwE(event,11, this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">时间</NOBR>。其默认值为“5000”,一般可将其修改为“1000”。</P>
<P style="TEXT-INDENT: 2em">然后,在如下的注册表分支:</P>
<BLOCKQUOTE style="BORDER-RIGHT: #a0a0a0 1px dashed; PADDING-RIGHT: 6px; BORDER-TOP: #a0a0a0 1px dashed; PADDING-LEFT: 6px; BACKGROUND: #ffffff; PADDING-BOTTOM: 6px; MARGIN: 4px; BORDER-LEFT: #a0a0a0 1px dashed; PADDING-TOP: 6px; BORDER-BOTTOM: #a0a0a0 1px dashed">HKEY_USERS\.DEFAULT\Control Panel\Desktop\</BLOCKQUOTE>
<P style="TEXT-INDENT: 2em">重复上面的操作,即修改“WaitToKillAppTimeout”与 “HungAppTimeout” 两个注册表项的值。</P>
<P style="TEXT-INDENT: 2em">在关机或注销时自动中止应用程序或进程</P>
<P style="TEXT-INDENT: 2em">不过,即便我们将 “HungAppTimeout”的值设得很小,并不意味着Windows Vista在等待时间超过该时限后便会自动中止该程序或进程,而仍会弹出对话框让用户确认是否中止。如果您感觉这样的方式过于繁琐,可通过修改注册表项让Windows Vista在超过等待时限后自动强行中断该进程的运行。</P>
<P style="TEXT-INDENT: 2em">找到如下的注册表分支:</P>
<BLOCKQUOTE style="BORDER-RIGHT: #a0a0a0 1px dashed; PADDING-RIGHT: 6px; BORDER-TOP: #a0a0a0 1px dashed; PADDING-LEFT: 6px; BACKGROUND: #ffffff; PADDING-BOTTOM: 6px; MARGIN: 4px; BORDER-LEFT: #a0a0a0 1px dashed; PADDING-TOP: 6px; BORDER-BOTTOM: #a0a0a0 1px dashed">HKEY_CURRENT_USER\Control Panel\Desktop registry</BLOCKQUOTE>
<P style="TEXT-INDENT: 2em">可看到项中有一名为“AutoEndTasks”的注册表项,其默认值为“0”,将其修改为“1”即是让Windows Vista自动终止所有的进程,而不再需用户的确认。</P>
<P style="TEXT-INDENT: 2em">以保证系统的稳定性为前提</P>
<P style="TEXT-INDENT: 2em">尽管上面的方法在某些情况下可以明显加快Windows Vista的关机速度。不过,需要强调的是,无论“WaitToKillServiceTimeout”、“WaitToKillAppTimeout”还是“HungAppTimeout”,对Windows 系统而言都是相当重要且不可缺少的参数,设置不当将<NOBR oncontextmenu="return false;" onmousemove=kwM(7); id=key4 onmouseover="kwE(event,7, this);" style="COLOR: #6600ff; BORDER-BOTTOM: #6600ff 1px dotted; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" onclick="return kwC();" onmouseout="kwL(event, this);" target="_blank">影响</NOBR>系统的稳定性或遗失用户重要数据的后果。</P>
<P style="TEXT-INDENT: 2em">以“WaitToKillServiceTimeout”为例,Windows 系统使用WaitToKillServiceTimeout的目的是为了给相应服务一段缓冲时间,让这些执行中的服务能够将缓存中的数据在系统关闭前写回去,如果没有保留足够的缓冲时间,数据便可能丢失而造成无法预知的后果,因此,一般不要将其时长设置得过短,至于将其设为“0”则更是不恰当的。</P>
<P style="TEXT-INDENT: 2em">另:上述修改方法同样适用于Windows 2000、 Windows XP与 Windows 2003。</P>
liuhui0803 2007-10-2 20:42
<P>使用这种方法的后果是什么呢?</P>
<P> </P>
<P>假设在某个文字处理软件里写文档,忘了保存,就直接关机。按理说这时候文字处理软件会询问你是否保存文件,并等待一定的时间供你点击相应的选项。但是经过上述修改后,很可能还没有来得及点击保存,系统就自动杀死了这个进程,完蛋了,也许关机速度能够快几秒钟,但是可能花了几个小时写的东西全部丢了</P>
<P> </P>
<P>不仅如此,这样修改注册表,可能导致更多严重的问题。例如某些程序或者服务在退出的时候需要保存设置或者修改过的配置信息,如果这个过程的速度很慢,可能没来得及保存就直接被Windows杀掉了进程</P>
<P> </P>
<P>所以,建议还是慎用这种方法</P>
ynlizhen 2007-10-7 13:20
这个也是 没有测试过 不过有些东西都是有利有弊的 像这样的还是需要自己注意下 什么时候选择用这种方法
媛媛 2007-10-28 12:46
加大内存 适当优化 全给改了 有时候除了莫名其妙的毛病 也找不到原因 比较郁闷
jasonclever 2008-6-12 12:58
关机好慢,不管让它自己慢慢关去~
sunlei3721 2008-7-5 01:26
好贴必须得顶啊。。。。:lol :lol