4

我有一个用 .NET 4.0 编写的项目,并且没有语法或功能理由将其升级到 .NET 4.5 。但是,我想知道执行性能是否会提高。

现在,我知道IL 代码可能会保持不变,因此性能改进将来自 CLR 改进。但由于 .NET 4.5仍在运行 .NET 4.0 CLR,升级后会不会有明显的性能提升?

(为了完成/说明,从 .NET 2 CLR 升级到 .NET 4 CLR 怎么样?)

4

2 回答 2

7

对了,CLR版本号还是一样的,4.5 CLR替换了4.0 CLR。然而,修订是实质性的。除了支持 WinRT 开发的语言投影之外,4.5 版本的重点实际上是性能改进。

我将简要介绍它们,本杂志文章已经很好地介绍了它们:

  • 多核 JIT。它将 IL 编译为多个内核上的机器代码。改善热启动时间。
  • 配置文件引导优化。Ngen.exe 关注在测试运行中收集的检测数据,以优化本机代码的布局。它提高了热代码的缓存局部性。
  • 大型对象堆改进。LOH 传统上存在内存碎片问题,改进为 4.5
  • 服务器 GC 后台集合。已经在工作站 GC 上可用了一段时间,现在也支持服务器 GC。减少收集暂停。
  • 文章中没有提到,通过预缓存常见 .NET 类型的类型数据,改进了在 .NET 类型上使用反射。
  • 检查文章的其余部分以了解其他更改。
于 2013-06-23T20:19:01.273 回答
1

多核 JIT 编译器仅在 4.5 上可用。如果您启用它,仅此一项就可以为您带来很大的性能改进。

值得一提的是,通过 4.5,您将放弃对 widnows xp 的支持(这可能是也可能不是问题)。

于 2013-06-23T17:58:03.973 回答