3

在Visual Studio C/C++項目中,很容易在「屬性頁| C/C++ |優化」中修改編譯器的優化設置。例如,我們可以給出不同的優化級別,例如/ O2和/ O3,以及高級優化如「省略幀指針」。我可以在哪裏修改Visual Studio中詳細的C#編譯器優化設置?

但是,我不能簡單地在Visual Studio的C#項目中找到相應的UI。我所能找到的只是關閉優化:「我已經有了」優化代碼「複選框。

C#用戶可以控制詳細的編譯器優化,如C/C++嗎?我必須在命令行中提供編譯器選項嗎?

alt text http://i32.tinypic.com/28ststh.png

回答

8

C#代碼的大部分優化都在JIT編譯器級別進行,而不是C#編譯器。基本上沒有C或C++中可用的那些詳細設置。

運行環境中有幾個與性能相關的元素可以調整,比如GC策略,但不是很多。

當我建立基準測試等命令行我傾向於只使用這樣的事情:

csc /o+ /debug- Test.cs 

(我相信已經看到匹配的PDB文件的存在有所作爲到性能,可能在成本異常被拋出,因此debug-開關...但我可能是錯誤的。)

編輯:如果你想看到每一位優化的差異,有一種方法這可能很有趣:

  • 編譯相同的代碼使用和不使用優化
  • 使用反彙編或反思中IL模式,看看有什麼不同之處
  • 手動應用同樣的更改一次一個(使用ILASM)和測量有多少每個一個具有
+0

謝謝,這是有道理的。我想看到性能差異w.r.t. C#程序的編譯器選項設置。 – minjang 2010-07-12 06:09:04

相關問題