ngen.exe完全内存使用和系统锁定

时间:2014-10-09 18:11:01

标签: c# .net

如果我让计算机闲置超过20分钟,它会锁定。每当我在c#visual studio 2010中编译和运行程序时,也会发生这种情况。起初我根本不知道问题是什么,但经过一些调试后,我发现使用100%的计算机的8GB是ngen.exe公羊使用资源监视器我只是设法暂停该过程并找出“ngen.exe”是什么。

事实证明它是.net原生图像生成器。我试过一次离开我的电脑大约5个小时,但它没有清理。我猜测某处有内存泄漏。有什么想法吗?

注意,我正在运行Windows 8.1,3.5GHz amd fx 8320 cpu和8gb ram。

2 个答案:

答案 0 :(得分:1)

我为这个问题苦了一段时间。每当我打开Visual Studio时,“ Microsoft Common Language Runtime本机编译器”过程将开始消耗大约4 GB的RAM和15%的CPU。

我尝试终止任务,删除注册表项,在任务计划程序中禁用任务,但是没有任何效果。当我打开Visual Studio时,该过程仍将运行。

最后,我找到了解决方案,方法是重命名Windows文件夹中的ngen.exe,即使本地管理员也无法轻易重命名。

注意:这应该是您的最后选择。

要重命名ngen.exe,请在ngen.exe所在的目录中以admin身份运行PowerShell或命令提示符,然后执行以下命令:

takeown /f ngen.exe 

icacls ngen.exe /grant Username:F

这些命令将所有权分配给指定的用户名,然后您可以重命名ngen.exe

答案 1 :(得分:0)

我认为,很清楚,当它持续处于空闲状态并且永不停止时,ngen会坚持做它不应该做的事情。 (我发现其他文章中提到了让它完成或通过运行来帮助完成..是ngentask还是什么?...但这些都不起作用。) 我怀疑它与Windows无法安装的更新有关,但没关系。

我第二次找到该帖子,但我真正想要的是https://answers.microsoft.com/en-us/windows/forum/all/how-to-stopuninstall-ngenexe/615fb76e-3340-453b-958d-c0a1c420d806上的帖子 史蒂文(Steven)有我上次为我工作的解决方案/变通办法:

...在任务计划程序库> Microsoft> Windows> .NET Framework中导航,然后导航!令人讨厌的任务以32位和64位版本显示,并在空闲状态下触发。右键单击以禁用。

严峻的含义是,每当.NET Framework迁移到新版本时,都需要再次执行此操作。