首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Visual Studio中可以在哪里修改详细的C#编译器优化设置?

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

Stack Overflow用户
提问于 2010-07-12 13:53:25
回答 3查看 4.3K关注 0票数 4

在Visual Studio C/C++项目中,很容易在“属性页| C/C++ |优化”中修改编译器的优化设置。例如,我们可能会给出不同的优化级别,如/O2和/O3,以及“省略帧指针”等高级优化。

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

C#用户可以像C/C++一样控制编译器的详细优化吗?我必须在命令行中给出编译器选项吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-12 14:01:43

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

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

当我从命令行构建基准测试等时,我倾向于使用如下内容:

代码语言:javascript
运行
复制
csc /o+ /debug- Test.cs

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

编辑:如果你想看看每一点优化带来的不同,有一种方法可能会被证明是有趣的:

在IL模式下,使用和不使用optimization

  • Use ildasm或
  • 编译相同的代码,以查看差异
  • 一次手动应用一个相同的更改(使用ilasm),并测量每个版本有多少
票数 9
EN

Stack Overflow用户

发布于 2010-07-12 13:55:25

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

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

我只找到了两个:

  • /filealign指定输出中部分的大小file.
  • /optimize启用/禁用optimizations.
票数 4
EN

Stack Overflow用户

发布于 2015-03-18 19:08:24

有点OT,但看过这个问题的人可能会发现这个问题很有用:

将此代码添加到方法签名: MethodImpl(MethodImplOptions.NoOptimization)

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

详情请看这里:https://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.methodimploptions%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3226157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档