如何杀死mscorsvw.exe

Ada*_*kis 12 .net ngen visual-studio

mscorsvw.exe(预编译程序集的.NET优化)占据了我CPU的很大一部分--50-100%.

这篇文章(和许多其他人)说

ngen.exe executequeueditems

从命令行应该杀死它.对我来说,那个命令就是挂起.有没有更好的方法来杀死这个过程?

我没有尝试重启.在过去的几天里,我看到我的CPU利用率不止一次上升,我怀疑这是我的问题; 我想知道如何杀死它.

Han*_*ant 14

尝试

ngen queue status
Run Code Online (Sandbox Code Playgroud)

希望显示的不仅仅是"我正在运行"并显示它正在尝试编译的内容.该ngen queue stop命令将停止该服务.

当安装程序部署程序集并要求服务预编译时,此服务开始运行ngen install.很明显,你的机器上有一个坏的,我猜它是一遍又一遍地失败来编译程序集.检查Windows事件日志中是否有关于此问题的痕迹.卸载执行此操作的程序.


seh*_*ehe 9

这篇文章(和许多其他人)说

ngen.exe executequeueditems

从命令行应该杀死它.对我来说,那个命令就是挂起.有没有更好的方法来杀死这个过程?

不; 它不会杀死它.相反,它会使故意更糟.它不会滴流后台编译(通常你不会注意到它),而是一次处理所有排队的项目.这需要一些时间才能完成.它没有挂起,它将非常努力.当它完成后,它就完成了,并且没有更多的东西需要进行后台编译.

请注意,最近的升级(您可能已安装了Service Pack)已添加(最有可能)后台编译作业.Windows正在帮助您使用.NET JIT编译器编译所有托管程序集,而Windows JIT编译器知道您的确切硬件和处理器类型,因此它将发出最优化的代码.通过这种方式,.NET可确保软件在未来以更快的速度运行,但代价是现在编译程序集

在您间接链接到yoursef的众多资源中,请阅读以下内容:


小智 5

在我看来,.NET 有一些有问题的设计,当需要一个“及时”编译器来运行所有内容以在 It's Time 之前编译它。

通常有两个mscorsvw守护进程在运行,一个用于 64 位,一个用于 32 位(它们彼此同步)。100% CPU 利用率是您对编译器的期望,但它以低优先级完成,并且一次不应占用超过一个内核。多核 CPU 的一个优点是,像这样的东西仍然让您成为驱动用户界面交互的核心。(请注意,搜索索引器是另一个同类的守护进程,按照相同的方式设计。)如果您有一个单核 CPU,那么您会真正注意到增加的负载。