2012-03-05 32 views
9

如果我在VS中運行版本構建,但附加了調試器。所以我可以設置斷點並調查優化的代碼反彙編。通常,爲了查看所有優化,我需要在沒有附加調試器的情況下運行,並分離到正在運行的進程。抑制模塊負載上的JIT優化(僅限管理)

在Visual Studio中取消選擇「在模塊負載(僅限管理)抑制JIT優化」開關是否足以帶來相同的結果? 「相同的結果」我的意思是:相同(優化)的機器指令,如啓動時沒有附加調試器?

我聽說JIT編譯器只會利用所有的優化選項,如果程序集是一個發佈版本和NO調試器被附加。現在我想知道這個開關是否可以讓我的調試/檢測更簡單?

+0

你爲什麼不試試? – svick 2012-03-05 10:26:17

+0

因爲它不會明確規定任何規則。 – JGrand 2012-03-05 10:30:08

+0

我確實嘗試過,並且看起來也是這樣做的。但我不知道這是否是定義的行爲。 – 2012-03-06 14:13:44

回答

3

DEBUG和RELEASE構建之間的IL有很小的差異,因此在這種情況下您確實想使用RELEASE構建(即,所有Debug.XXX調用均在Release案例中編譯出來)。

取消檢查「在模塊加載時抑制JIT優化(僅管理)」應允許JIT做優化,就好像沒有附加調試器一樣。我不知道這兩起案件有什麼不同。