.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 的預編譯是卡在什麼地方。

  1. 以系統管理員身份啟動 CMD

  2. cd C:\Windows\Microsoft.NET\Framework\v2.0.50727\

  3. 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 從預編譯佇列移除

  1. 以系統管理員身份啟動 CMD

  2. cd C:\Windows\Microsoft.NET\Framework\v2.0.50727\

  3. 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
  1. 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 已經從編譯佇列移除

不同 Hexo render 顯示 markdown table 的比較

原始 markdown 表格 code 如下

| Right | Left | Default | Center |
|------:|:-----|---------|:------:|
|   12  |  12  |    12   |    12  |
|  123  |  123 |   123   |   123  |
|    1  |    1 |     1   |     1  |

hexo-renderer-markdown-it render 出來的表格

hexo-renderer-markdown-it render 出來的表格

hexo-renderer-pandoc redner 搭配 pandoc 1.17.0.2 render 出來的表格

hexo-renderer-pandoc redner 搭配 pandoc 1.17.0.2 render 出來的表格

結論

  • hexo-renderer-markdown-it 較能正確顯示 markdown table 的對齊樣式。
  • hexo-renderer-pandoc 雖無法正確對齊,但支援較多種表格形式。

Highcharts 與 Plotly 的性能比較

Highcharts 與 Plotly 都是用來繪製網頁圖表的 JavaScript library 為了確認哪套比較適合在同一張圖表上繪製大量數組,我用 Plotly 與 Highcharts 繪製相同的大數組圖表,測試他們在顯示大量數組時的反應。

實驗發現(數組名稱較長情況下)

  • 在少量數組時,Highcharts 的游標移動效果較 Plotly 平順。
  • 隨著顯示數組的增加 Highcharts 順暢度開始遞減,而 Plotly 無明顯改變。
  • 當顯示所有數組時,Highcharts 幾乎動彈不得,Plotly 仍然可以正常操作。

額外發現

  • 數組名稱的長度對 Highcharts 有顯著影響,如減少數組名稱的長度,流暢度就會大幅提昇。
  • Plotly 無論名稱長短、數組多寡,都無太大差異。

結論

如要繪製顯示大量數組的圖表,建議用 Plotly 較不會因數組名稱過長導致體驗變差。

實驗 DEMO (30個數組、每組200個數值)

順便記錄用來產生測試數據的程式碼如下

import json, random
a1=[]
b1=[]

for x in range(30):
    labelsName='samplexxxxxxxxxxxxxx'+str(x)
    #labelsName='sample'+str(x)
    randint=[random.randint(1, 100) for _ in range(200)]
    #for plotly
    a={'type':'scatter','model':'lines','name':labelsName}
    a['y']=randint
    a1.append(a)

    #for highcharts
    b={}
    b['name']=labelsName
    #b['visible']= False
    b['data']=randint
    b1.append(b)

with open('plotly_test.json','w') as f:
    f.write(json.dumps(a1))

with open('highcharts_test.json','w') as f:
    f.write(json.dumps(b1))

解決 Windows 環境 pysnmp / pycrypto package 安裝失敗問題

今天執行 pip install pysnmp 時一直出現下面的錯誤訊息,問題似乎出在其中一個相依套件 pycrypto

building 'Crypto.Random.OSRNG.winrandom' extension
warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
error: Unable to find vcvarsall.bat

原因是 Windows 環境需要 VC 去編譯 winrandom ,我沒有 VC 自然會失敗收場。

解決辦法是去下載並安裝人家已經編譯好的 pycrypto 二進位安裝檔,就能順利執行 pip inatall pysnmp 了。

PS. 目前尚未有對應 Python 3.5 的安裝檔,所以需要 pycrypto 套件的話先別上 Python 3.5。

適用 Python 3.4

適用 Python 2.x-3.3

使用 vSphere Web Client 執行 Launch Console 時提示 'The server name could not be resolved'

問題原因

VMware vCenter Server Appliance 設定了錯誤的 hostname,導致無法透過 DNS 正確解析 vCenter hostname。

解決方法

將 vc 的 hostname 設定完整的 FQDN 並產生新的 SSL 憑證

  1. 登入 VMware vCener Server Appliance 管理介面 (vCenterIP:5480)
  2. 於 Network/hostname 設定完整的 FDQN
  3. 將 Admin 的 Certificate regeneration enabled 設為 Yes
  4. 將 VMware vCener Server Appliance 重新開機
  5. 將 Admin 的 Certificate regeneration enabled 設為 No

如果沒有完成步驟 3~5 來產生新的 SSL 憑證的話,使用 vSphere Web Client 登入時將會出現下列錯誤訊息。

Failed to connect to VMware Lookup Servicehttps://vCVA_IP_address:7444/lookupservice/sdk - SSL certificate verification failed.

參考資料

VMware KB2033338

提供免費 WHOIS Privacy 的域名供應商 Namesilo

Namesilo 是少數提供免費 WHOIS Privacy 服務的域名註冊商,同時他的續期價格也算便宜,在這麼有競爭力的條件下,讓我決定把域名從 Godaddy 移轉到 Namesilo 。

簡單比較如下

費用項目 Namesilo Godaddy eNom
.info 新購 9.59 USD/yr 2.99 USD/yr 18.00 USD/yr
.info 續購 9.59 USD/yr 10.99 USD/yr 10.26 USD/yr
.info 轉入 9.19 USD/yr 8.99 USD/yr 10.26 USD/yr
whois 隱私保護 免費 7.99 USD/yr 14.00 USD/yr

使用下列優惠碼還可減1美元:

renrencf

WHOIS Privacy 的運作方式可參考下列網站

什麼是WHOIS Privacy (Domain Privacy)?