realzyc8847 发表于 2013-3-11 16:28

教程:禁用Windows8下的Microsoft .NET Framework NGEN服务

关键字:Windows 8, Windows Server 2012, Win 8, 禁用, Microsoft .NET Framework NGEN服务, .NET Runtime Optimization Service, 启动优化

Windows 8发布以后,很多人都在研究如何优化启动项,由于Windows 8默认启动Microsoft .NET Framework平台,因此在开机后都会默认打开Microsoft .NET Framework NGEN服务,该服务的详情。
服务名称:Microsoft .NET Framework NGEN
EXE名称:mscorsvw.exe
EXE描述(任务管理器中看到的名称):.NET Runtime Optimization Service

1.背景:(如果了解此中内容,请直接跳转到“教程”部分)
-------------------------------------
很多人都抱怨,Windows 8启动后一段时间CPU占用率非常高,比如:https://bbs.pcbeta.com/viewthread-1149838-1-1.html。实际上就是这个服务在作怪。其实我们一般用户无需要这个优化的服务(参见http://baike.baidu.com/view/713328.htm)。

在Windows 7的时代,我们可以通过“管理-服务”轻松的禁用如下服务,界面如下。
Windows 7 / XP /Vista中的Microsoft .NET Framework NGEN服务 Windows 7 / XP /Vista中禁用Microsoft .NET Framework NGEN服务       
但是在Windows 8中,系统已经在“计算机管理”中“隐藏”了该服务,使得我们无法通过原来的方法禁用该服务。但实际上该服务依旧存在,并且依旧可以通过其他方法来“禁用”。

我们首先查看Windows 7中的注册表,(Windows XP/ Vista/ 7 / 8的进入方式均相同):运行“regedit.exe”进入注册表编辑器,导航到如下位置:
       HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
找到:clr_oprimazation_xxxxx项目,两个匹配的项目都是需要禁止的。(一个是2.0版本,一个是4.0版本,对于x64的系统,可能有多至4个的启动项,x64的尾坠为_64。)

Windows 7 / XP /Vista中注册表:Microsoft .NET Framework NGEN服务
观察项目中的Start键,其中的REG_DWORD数值有多重选项,分别代表了:
       0x00000002(2):自动启动服务
       0x00000003(3):手动启动服务
       0x00000004(4):禁用服务

而在Windows 8 / Windows Server 2012中,同样打开注册表编辑器(Win键+R,输入Regedit,回车)并导航到:
       HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\clr_oprimazation_xxxxx
如下图:
Windows 8 / Windows Server 2012注册表:Microsoft .NET Framework NGEN服务(4.0版32位) Windows 8 / Windows Server 2012注册表:Microsoft .NET Framework NGEN服务(4.0版 64位)
可以看到,其中并没有像Windows 7中的信息,这也是它在“管理-服务”中不被显示的原因之一。但是,我们仍然可以通过添加Start键,并将值设置为“4”来禁用这个被隐藏的服务,方法如下。


2.教程:
--------------------------------------------------
系统:Windows 8 / Windows Server 2012
目的:禁用微软的Microsoft .NET Framework NGEN服务(即任务管理器中的.NET Runtime Optimization Service)。提升系统启动速度。优化启动项。
位元:x86/x64通用(理论上x64的服务数量比x86多一倍)
步骤:
1.        打开注册表编辑器(Win键+R,输入Regedit,回车)
2.        导航到如下位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
3.        遍历每个clr_oprimazation_xxxxx项,进行如下修改:以下仅举一例。
4.        添加一个键,右键->新建->DWORD值
5.        在新建的键中输入“Start”(注意大小写)。
6.        鼠标双击新建的“Start”,编辑其数值,在“数值数据”中输入“4”。最后确定
7.        这样这个服务就不会开机自动启动了。继续修改其他的clr_oprimazition_xxx服务,重做4-6步。修改完后如下所示
Windows 8 / Windows Server 2012:禁用了Microsoft .NET Framework NGEN服务(4.0版 32位) Windows 8 / Windows Server 2012:禁用了Microsoft .NET Framework NGEN服务(4.0版 64位)
8.        修改完成,重启。打开“任务管理器”,发现不再出现“.NET Runtime Optimization Service”进程,说明禁用成功。


realzyc8847 发表于 2013-3-11 16:52

自己坐沙发

春爱棉花 发表于 2013-3-11 22:55

这个 就被沉默了不知道 到底有什么用

realzyc8847 发表于 2013-3-11 23:09

春爱棉花 发表于 2013-3-11 22:55
这个 就被沉默了不知道 到底有什么用

启动项优化呀!要知道这个在Windows7的时候是默认禁用项

asusavstub 发表于 2013-3-11 23:45

禁用这个和作死有什么区别……

shnng47 发表于 2013-3-11 23:57

很多游戏和软件需要这个支持,禁用后能保证在需要时自动调用吗?楼主应该把关闭服务后的实际评测发出来再来分享!
仍然感谢!

realzyc8847 发表于 2013-3-12 13:28

shnng47 发表于 2013-3-11 23:57 static/image/common/back.gif
很多游戏和软件需要这个支持,禁用后能保证在需要时自动调用吗?楼主应该把关闭服务后的实际评测发出来再来分 ...

这个是.NET的优化进程,而不是必须的进程。禁用以后所有.NET的功能依旧可以使用,只是理论上第一次启动的速度会慢一些。但在实际中是没有差别的。

确实,禁用后此服务将不能被调用,但所有.NET的功能均正常,我使用了自己开发的.NET应用,甚至是使用VS开发,均没有问题。

realzyc8847 发表于 2013-3-12 13:29

asusavstub 发表于 2013-3-11 23:45 static/image/common/back.gif
禁用这个和作死有什么区别……

这...难道你Win7的时候没禁用过...? 百度一下吧,http://baike.baidu.com/view/713328.htm

liusw3210 发表于 2013-3-12 13:40

有机会的话试一下,还是先马一下吧

sheng2012 发表于 2013-3-28 20:56

mark下,备用

dgnhmssk 发表于 2013-3-28 20:58

谢谢分享 试试看

悟雨 发表于 2013-3-28 21:12

good下次注意下这进程

yzx898 发表于 2013-7-1 11:15

好文,标记!!!!!!!!!!!!!!

yzx898 发表于 2013-7-3 13:10

楼主,我把你的方法发扬光大了,看此贴:https://bbs.pcbeta.com/viewthread-1365908-1-1.html

股市欢迎你 发表于 2013-7-15 00:33

启动时,cpu 占用很高

pinwang777 发表于 2013-10-13 12:43

谢谢楼主的科普贴!

clawneo 发表于 2013-10-14 16:40

恩... 我确实也是直接干掉他们... 不让他们启动的 直接禁用...

黑鹰99 发表于 2014-4-12 17:03

科普贴`{:5_591:}谢谢分享

binggan39 发表于 2014-4-26 20:22

牛,原来是这样

wang0251 发表于 2014-5-8 13:55

很有帮助,我还以为WIN8没这服务了呢
页: [1] 2
查看完整版本: 教程:禁用Windows8下的Microsoft .NET Framework NGEN服务