我们的许多C#发布代码的“优化代码”选项是关闭的。我认为这是为了方便在释放模式下调试代码。
考虑到我们正在创建连接到后端Web服务的相对简单的桌面软件(即不是特别需要处理器密集型应用程序),那么可能会有什么样的性能损失?
是否会有任何特定平台受到更严重的影响?例如,多处理器/64位。
我们的许多C#发布代码的“优化代码”选项是关闭的。我认为这是为了方便在释放模式下调试代码。
考虑到我们正在创建连接到后端Web服务的相对简单的桌面软件(即不是特别需要处理器密集型应用程序),那么可能会有什么样的性能损失?
是否会有任何特定平台受到更严重的影响?例如,多处理器/64位。
只有您自己才能回答“性能损失”的问题。尝试两种方法,测量性能,并观察结果如何。损失可能是巨大的,也可能不存在;没有人知道“巨大”对您来说是一微秒还是二十分钟。
如果您对 C# 编译器在优化开关打开时执行的优化感兴趣,而不是即时编译器,请参阅:
http://blogs.msdn.com/ericlippert/archive/2009/06/11/what-does-the-optimize-switch-do.aspx
我发现对于复杂的CPU密集型代码(我正在使用的代码是一种可以生成足以利用计算机100%线程的Monte Carlo模拟。这在36核环境中进行了测试),性能损失可能高达4倍! 如果没有优化标志,则需要大约9个小时才能完成花费2个小时的模拟。(路径约为500,000,每个路径有500个步骤,涉及大约2000个不同的对象,每个对象都有高度复杂的计算)。