【问题标题】:Examples of CLR compiler optimizationsCLR 编译器优化示例
【发布时间】:2011-04-12 19:38:42
【问题描述】:

几个月后我正在做一个关于 .Net 性能和优化的演讲,我想提供一些不必要的优化示例,这些东西无论如何都将由编译器完成。

我在哪里可以找到一些关于编译器实际上能够在代码前后进行哪些优化的解释?

【问题讨论】:

  • CLR 和 JVM(s with JIT) 不是在运行时/在 JIT 编译期间执行大多数优化吗?

标签: c# .net compiler-construction clr compiler-optimization


【解决方案1】:

查看这些链接

  1. C# Compiler Optimizations
  2. compiler optimization
  3. msdn

还可以在 MSIL 上查看这本书
1. 微软中间语言:C#与VB.NET的比较/Niranjan Kumar

【讨论】:

    【解决方案2】:

    我认为比“无论如何都将由编译器完成的事情”的示例更好的是编译器执行开发人员优化的场景示例em>假设会提高性能,但实际上不会。

    例如,有时开发人员会假设在本地缓存一个值会提高性能,而实际上在堆栈上少一个值所节省的成本超过了可以内联的字段访问的微不足道的成本。

    或者开发人员可能认为“强制内联”方法调用(主要是通过剥离调用本身并替换为复制/粘贴的代码)是值得的,而实际上保持方法调用原样会导致只有在有意义的情况下(当内联的好处超过代码大小的增长时)它才会被编译器内联。

    当然,这只是一个大概的想法。我没有可以指出的具体代码示例;但是如果你寻找它们,也许你可以找到一些。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 2011-11-07
      • 2014-02-21
      • 2011-08-24
      相关资源
      最近更新 更多