星期三, 11月 22, 2006

.NET Runtime Optimization Service

今天打開我的以卵擊石,正想打開SQLExpress來測試效能時,卻發現CPU一直100%居高不下,查出被svchost.exe吃掉,是呼叫mscorsvw.exe。只好拿出舊方法--關Service來試試誰吃了CPU。

運氣很好,第一個服務就是: .NET Runtime Optimization Service v2.0.50727_X86
乖乖,從來沒看過名稱這麼長又怪異的服務,我三年前補習MCSE2003是上假的嗎?

只好請出Google大神解讀一下,結果台灣還真沒人遇到問題,是我太遜了嗎?幸好地球上仍然有人遇到和我相同的問題,根據David Notario的說法:這是一個新的CLR最佳化服務,跑過一次就不會再執行。其實是把IL編譯成Native Binary的動作。所以應該是因為我今天安裝SQL Server Service Pack 1,CLR偵測到有新的元件加入GAC,就編譯成原生檔。而這個動作,可以透過指令操作:
ngen queue pause
ngen executequeueditems
ngen queue continue
...
 
看來我還真是孤陋寡聞,MCSD應該會教NGen吧?明天再跑趟天龍天瓏找本書來看看。
差點忘了說,最後我就拿出NB散熱墊,讓mscorsvw.exe跑完就沒事。也只花了十幾分鐘,所以應該能夠接受。

參考資料:
NGen Revs Up Your Performance with Powerful New Features
To NGen or not to NGen
David Notario's WebLog

3 則留言:

yuan 提到...

感謝站長寶貴的資訊,我的是安裝二部只有一部有發生,另一部非常正常,也是在sp安裝後才有

litfal 提到...

感謝資訊,我也遇到了一樣的問題。
重灌xp sp3時安裝vs2008後更新windows時,CPU就被吃光了

匿名 提到...

感謝資訊,我也遇到了一樣的問題。更新windows時,CPU就被吃光了