首页 > 系统相关 >解决.NET Runtime Optimization Service(mscorsvw.exe)进程占用CPU过高的问题

解决.NET Runtime Optimization Service(mscorsvw.exe)进程占用CPU过高的问题

时间:2023-01-28 21:22:42浏览次数:36  
标签:exe Service Windows NGEN Framework Optimization 64 NET bit

在使用server系统时偶然发现系统运行速度缓慢,任务管理器检查发现一个名为.NET Runtime Optimization Service的进程正在疯狂的占用CPU。

谷歌了一下发现这个进程是在系统安装了.NET Framework 或是.NET Framework 被更新之后,触发了.NET的最佳化服务,结合我当时的情况,我确实是刚安装完.NET。。。这个服务在你安装完.NET之后还会预编译那些高优先级的assemblies,然后等到你的电脑空闲的时候再去处理那些低优先级的assemblies 。一旦它全部处理完毕,它将会终止,不再占用资源,所以这个过程是不定的,不确定他什么时间就开始占用资源,我们可以额使用一个脚本加快这个优化服务

管理员运行Powershell,执行如下脚本,即可加快这个服务的进度

# Script to force the .NET Framework optimization service to run at maximum speed.

$isWin8Plus = [Environment]::OSVersion.Version -ge (new-object 'Version' 6,2)
$dotnetDir = [environment]::GetEnvironmentVariable("windir","Machine") + "\Microsoft.NET\Framework"
$dotnet2 = "v2.0.50727"
$dotnet4 = "v4.0.30319"

$dotnetVersion = if (Test-Path ($dotnetDir + "\" + $dotnet4 + "\ngen.exe")) {$dotnet4} else {$dotnet2}

$ngen32 = $dotnetDir + "\" + $dotnetVersion +"\ngen.exe"
$ngen64 = $dotnetDir + "64\" + $dotnetVersion +"\ngen.exe"
$ngenArgs = " executeQueuedItems"
$is64Bit = Test-Path $ngen64


#32-bit NGEN -- appropriate for 32-bit and 64-bit machines
Write-Host("Requesting 32-bit NGEN") 
Start-Process -wait $ngen32 -ArgumentList $ngenArgs

#64-bit NGEN -- appropriate for 64-bit machines

if ($is64Bit) {
    Write-Host("Requesting 64-bit NGEN") 
    Start-Process -wait $ngen64 -ArgumentList $ngenArgs
}

#AutoNGEN for Windows 8+ machines

if ($isWin8Plus) {
    Write-Host("Requesting 32-bit AutoNGEN -- Windows 8+") 
    schTasks /run /Tn "\Microsoft\Windows\.NET Framework\.NET Framework NGEN v4.0.30319"
}

#64-bit AutoNGEN for Windows 8+ machines

if ($isWin8Plus -and $is64Bit) {
    Write-Host("Requesting 64-bit AutoNGEN -- Windows 8+") 
    schTasks /run /Tn "\Microsoft\Windows\.NET Framework\.NET Framework NGEN v4.0.30319 64"
}

完成之后窗口会自动关闭,这时候再去观察任务管理器,发现.NET Runtime Optimization Service已经没了或者不会去过高的占用资源了,因为整个优化过程已经被加速完成了


————————————————
版权声明:本文为CSDN博主「咖啡那么浓」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ywd1992/article/details/89239367

标签:exe,Service,Windows,NGEN,Framework,Optimization,64,NET,bit
From: https://www.cnblogs.com/xkoon/p/17071291.html

相关文章

  • Vue3数据对接报错(Unhandled error during execution of render function )
    如图:、 意思就是说:多了个value,在渲染div的时候,一些部分不应该有value查看一下传输数据的时候中间是否有null值的,或者无效值 ......
  • Service Worker 在 PWA 中的应用
    ​​ServiceWorker在PWA中的应用​​ 有些开发人员认为,使用Web应用程序PWA特性的最大收益是​​应用程序安装横幅​​​,即​​appinstallbanners​​.开......
  • Bash: exec
       -aname替换command程序名作为第0个参数    -cExecuteCOMMANDwithanemptyenvironment    -l Placeadashinthezerothargum......
  • 一个调用ATL Server WebServices 的AJAX客户端
    请将下面的代码完整复制到soapclient.js中/**//*****************************************************************************AJAXJavascript"SOAPClient"libra......
  • ximo脱壳-手脱tElock 0.98b1壳、exe32pack壳、WinUpack加的壳
    一、手脱tElock0.98b1壳用最后一次异常法首先使用OD载入程序  然后不停的用shift+F9,直到程序运行起来,记录下程序运行起来的前一次的次数,然后执行到那一次 上图......
  • 监控Recovery Service Vault备份状态
    接下来再来说下如何监控备份作业的状态,备份不是摆在那就可以的,我们要清楚知道备份是否在成功运行,这就需要监控了,首先来看看如何做RecoveryServiceVault虚机备份的监控主要......
  • Compile Sqlite3 Executable, Static Library, and Shared Library on Linux
    DownloadSqlite3sourcecode,anddecompressittosomewhere.Enterthedecompressedfolder,typethefollowingcommandtogeneratedifferenttargetswithall......
  • 解决:“error PRJ0003 : 生成“cmd.exe”时出错”
    昨晚用VS2005刚写好的程序,今天打算修改,不料在编绎时,却出现了错误,错误信息如下:“errorPRJ0003:生成“cmd.exe”时出错”解决方法:在VisualStudio2005中进行如下设置:打......
  • Service Worker 在 PWA 中的应用
    有些开发人员认为,使用Web应用程序PWA特性的最大收益是应用程序安装横幅,即appinstallbanners.开发人员可以通过正确的启发式方法(hittingtherightheuristics)获......
  • Java socket程序打包为exe闪退
    提问:   我写了个Javasocket的程序,IDE运行没什么问题,但我把程序打包成exe,它就显示这个,然后就闪退了。有没有人知道是怎么回事。解答: 地址已经被绑定了,你先解绑一......