我在哪里可以修改Visual Studio中的详细C#编译器优化设置?

min*_*ang 3 .net c# visual-studio-2010 compiler-optimization visual-studio

在Visual Studio C/C++项目中,可以轻松地在"Property Pages | C/C++ | Optimization"中修改编译器的优化设置.例如,我们可以提供不同的优化级别,如/ O2和/ O3,以及高级优化,如"忽略帧指针".

但是,我不能简单地在Visual Studio的C#项目中找到相应的UI.我所能找到的只是关闭优化:"优化代码"复选框就是我所拥有的.

C#用户可以控制详细编译器的优化,如C/C++吗?我是否必须在命令行中提供编译器选项?

替代文字http://i32.tinypic.com/28ststh.png

Jon*_*eet 8

C#代码的大部分优化都是在JIT编译器级别而不是C#编译器上进行的.基本上没有像C或C++中那样的详细设置.

可以调整运行时的一些与性能相关的元素,例如GC策略,但不是很多.

当我从命令行构建基准测试等时,我倾向于使用这样的东西:

csc /o+ /debug- Test.cs
Run Code Online (Sandbox Code Playgroud)

(我相信我已经看到匹配的pdb文件的存在对性能产生影响,可能就抛出异常的成本而言,因此debug-切换......但我可能是错的.)

编辑:如果你想看到优化的每一点差异,有一种方法可以证明有趣:

  • 使用和不使用优化编译相同的代码
  • 在IL模式下使用ildasm或Reflector来查看差异
  • 手动(使用ilasm)一次应用相同的更改并测量每个更改的数量