創用 CC 授權條款
除非另有註明,本網站的著作Fygul Hether製作,以創用CC 姓名標示-非商業性-禁止改作 4.0 國際 授權條款釋出。

2020年12月10日 星期四

微軟視窗系統的mscorsvw.exe

概要

目前自己的主要作業環境並不是微軟Windows,然而在這不常用的環境有時會發現電腦開機完,才閒置一陣子後硬碟轉個不停,即使動一下滑鼠都還要等好一段時間才會停止。之前已關閉掉幾個自己用不著且耗資源的東西,包括Microsoft Compatibility Appraiser,不過還是有漏網之魚,真不知系統中究竟埋藏了多少不為人知的機關。這回在工作管理員中發現的兇手是mscorsvw.exe,稍微查了點相關資料,在此記錄一下,免得往後忘了又踩到同一個地雷時又得花時間查究竟是怎麼回事。

本文簡單介紹一下mscorsvw.exe與其作用、專家所提供的意見,以及筆者依據自身使用情況所做的處置。

啥是mscorsvw.exe?

執行檔名稱MsCorSvW代表著Microsoft Compiler To Save Work,該檔案是Microsoft .NET Framework Optimization Service (mscorsvw.exe)的軟體元件,它在背景執行以讓Native Code Generator (NGEN.exe)轉換.NET Framework library routines成機器碼,這樣讓以.NET寫的應用程式能較快速執行。

它並不像其他Windows服務總在Windows啟動時執行,而是只在某特定版本的.NET Framework首次安裝,或者被Windows Update變動時才會執行。若系統("C:\Windows\Microsoft.NET\Framework")中有多個.NET版本,各有各的ngen.exe與mscorsvw.exe執行檔。在Win 7與更早的版本,它們在編譯整個.NET library到機器碼時會耗用大量CPU資源。Win 8只重編譯被更新的部分[1],只在閒置時才做[2]。

多數時間,使用者不會注意到mscorsvw,如果讓你注意到它,可能想別再讓它影響電腦效能,有專家不建議在工作管理員關閉或殺掉mscorsvw。可加速.NET Framework Optimization Service,預設它只使用一CUP核心,可讓它使用更多核心以儘快完成工作。.NET Framework 4可有較大的加速;若只有安裝.NET Framework 2或3.5,效果較小。可以執行此腳本,讓mscorsvw以最快速度完成它的工作,在執行期間(因耗用CPU能力)會讓機器(跑的其他工作)變慢。腳本執行完成後會自行關閉,如果再次注意到mscorsvw,再次執行腳本。[2]

註:該腳本有兩個版本,其中之一是PowerShell版本,必須在RemoteSigned或Unrestricted PowerShell execution policy才能執行[2],還有後述的工作排程器中的兩個排程不可停用,否則腳本無法正常執行。

個人見解與處置

上一節內容是專家提供的,再來談點專家沒提到的。自用的Windows機器只在內部環境中使用,安裝後沒再做系統更新,最近也不曾加裝.NET Framework軟體,然而mscorsvw.exe卻似乎在上述兩種情況之外執行。

在工作排程器中,我發現了它的蹤跡,進入 Microsoft - Windows - .NET Framework 就可看到它,我懶得研究它究竟怎麼來的,大概是系統內建的排程,估計在未來也會再觸發執行,如下圖(前些日子擷取的圖):

照說這種編譯工作,除非之後增加了新東西,否則應該一次完成後就沒了,不該重複做。以自身的情況而言,既不做系統更新,也幾乎不用.Net framework軟體(事實上很少新增軟體,包括非.NET Framework軟體,也就是系統在很長時期是沒什麼大變動的),為何要一直重複做這工作?

筆者採用另一種途徑,即讓它一次完成,可執行一次上述腳本,然後把排程停用。如果往後有安裝.NET Framework軟體或更新系統時(應該很難得會有這種機會),再將其開啟,執行完後再次關閉。此舉措只是個人行為,不建議一般使用者為之。

題外話:意外在工作排程器中發現AVAST Sofware的Avast Overseer,已許多年沒再用過AVAST,不知何時裝進來的,也或許是軟體的移除程式之前也沒將其移除乾淨,既然沒用到,刪了也罷。在M$的系統中總是會發現非意料中的東西似乎是很平常的事。

參考與連結

  1. Is mscorsvw.exe safe? How to remove a mscorsvw error?
  2. Wondering why mscorsvw.exe has high CPU usage? You can speed it up.

沒有留言:

張貼留言