我試圖優化某些WinForms應用程序的冷啓動時間。我已經對所有程序集進行了NGen,但仍然看到JIT被調用。我已經啓用了MDA的jitCompilationStart,並查看MDA中的運行時異常,指出引發JIT的調用。託管調試助手(MDA)jitCompilationStart用法
我的問題是 - 現在是什麼?我看到的是建議的調試器列表。如果我從列表中選擇sthm - 我在VS中看不到任何東西。應用程序繼續執行,僅此而已。如何獲取有關應用程序的哪些部分調用JIT的信息?
我已經啓用JitCompilationStart在調試 - >例外 - >託管調試助手:
你在調試器下運行你的代碼嗎?來自http://msdn.microsoft.com/en-us/library/d21c150d.aspx:「當MDA啓用時,即使代碼沒有在調試器下執行,它也是活動的。如果在事件發生時調試器不存在時,事件消息顯示在未處理的異常對話框中,但它不是未處理的異常。要避免此對話框,請在代碼未在調試環境中執行時刪除MDA啓用設置。 –
@MarcSherman如果沒有附加調試器,則會出現異常對話框。如果我在啓動時將VS附加到WinForms進程上,那麼沒有任何異常對話框和應用程序沒有任何問題。但是我沒有看到MDA中的任何日誌或sthm。 – nikita
從閱讀jitCompilationStart MDA聽起來它只是報告JIT事件,所以也許你成功地擺脫了它們。如果你用VS附帶了一個你的程序的版本,但是它根本沒有被修改,會發生什麼?你看到JIT事件嗎? –