繁体   English   中英

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

[英]Where can I modify detailed C# compiler optimization settings in Visual Studio?

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

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

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

替代文字

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

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

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

csc /o+ /debug- Test.cs

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

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

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

AFAIK C#编译器没有这样详细的优化属性。 可能启用或禁用优化。


http://msdn.microsoft.com/en-us/library/6s2x2bzy.aspx

我发现只有两个:

  • /filealign指定输出文件中节的大小。

  • /optimize启用/禁用优化。

有点OT,但看到这个问题的人可能会觉得这很有用:

将其添加到方法签名:[MethodImpl(MethodImplOptions.NoOptimization)]

关闭该方法的编译器优化。

有关详细信息,请参阅此处: https//msdn.microsoft.com/en-us/library/system.runtime.compilerservices.methodimploptions%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM