.NET Runtime Optimization Service 持續佔用 CPU
電腦安裝自然輸入法後,當電腦 Idle 一陣子,會發現CPU風扇轉速變高噪音變大,於工作管理員會看到 .NET Runtime Optimization Service 程序持續佔用 CPU。
正常情況下 .NET RuntimeOptimization Service 會利用電腦空閒時間,將新安裝的 .NET 應用程式進行預編譯,來加快應用程式的啟動速度。通常預編譯只需執行一次,預編譯過的應用程式就不會再執行。1
但問題出在,自然輸入法的預編譯過程一直無法完成,使得 .NET RuntimeOptimization Service 卡在那邊吃 CPU。
年初就有人在官方FB提出類似問題,但遲遲沒有人出來回應。2
官方網站的常見問題也沒有關於這方面的相關資訊。
特別把這問題 email 詢問官方後,才收到會在之後版本修正的回覆,但也沒有提供任何 workaround。
不得不說,對網際智慧這種趨近射後不理的產品支援方式感到擔憂。
所以整理以下方法給大家自力救濟
驗證方法
檢查目前 .NET Runtime Optimization Service 的預編譯是卡在什麼地方。
-
以系統管理員身份啟動 CMD
-
cd C:\Windows\Microsoft.NET\Framework\v2.0.50727\
-
C:\Windows\Microsoft.NET\Framework\v2.0.50727>
ngen executeQueuedItems
Microsoft (R) CLR Native Image Generator - Version 2.0.50727.8745 Copyright (c) Microsoft Corporation. All rights reserved. Compiling assembly C:\Program Files\IQ Technology\Going11\Go11Util.dll (CLR v2.0.50727) ...
發現卡在C:\ProgramFiles\IQ Technology\Going11\Go11Util.dll
跑不完,只要把 Go11Util.dll 從編譯佇列移除,問題就解決。
解決方法
把 Go11Util.dll 從預編譯佇列移除
-
以系統管理員身份啟動 CMD
-
cd C:\Windows\Microsoft.NET\Framework\v2.0.50727\
-
C:\Windows\Microsoft.NET\Framework\v2.0.50727>
ngen.exeuninstall "C:\Program Files\IQ Technology\Going11\Go11Util.dll"
Microsoft (R) CLR Native Image Generator - Version 2.0.50727.8745 Copyright (c) Microsoft Corporation. All rights reserved. Uninstalling assembly C:\Program Files\IQ Technology\Going11\Go11Util.dll
- C:\Windows\Microsoft.NET\Framework\v2.0.50727>
ngenexecuteQueuedItems
Microsoft (R) CLR Native Image Generator - Version 2.0.50727.8745 Copyright (c) Microsoft Corporation. All rights reserved. All compilation targets are up to date.
Go11Util.dll 已經從編譯佇列移除