对于托管代码,除非你有很多东西有条件地编译为DEBUG构建,否则应该没什么区别 - IL应该几乎相同.在调试器下运行时抖动的生成方式不同 - 对IL的编译不会受到太大影响.
/optimize
在编译IL时会有一些事情,但它们并不是特别具有攻击性.并且一些IL优化可能会由抖动优化处理,即使它们没有在IL中进行优化(如删除nops).
有关详细信息,请参阅Eric Lippert的文章http://blogs.msdn.com/ericlippert/archive/2009/06/11/what-does-the-optimize-switch-do.aspx:
/ optimize标志不会改变我们的大量发射和生成逻辑.我们尝试始终生成简单,可验证的代码,然后依靠抖动在生成真实机器代码时进行大量优化.但是我们将使用该标志集进行一些简单的优化.
阅读Eric的文章,了解有关/optimize
IL生成的信息.